Html a<;P>;标签被认为是空的?

Html a<;P>;标签被认为是空的?,html,cross-browser,w3c,Html,Cross Browser,W3c,: 我们不鼓励作者使用空的p元素 用户代理应该 忽略空的P元素 如何定义空? 标记之间的空格字符是否算数 在之间添加一个新行字符怎么样?自动关闭标记明确定义了空元素,如和。我认为很有理由期望一个开始标记紧跟着一个结束标记,比如也定义了一个空元素。是否限定为“空”可能取决于用户代理,但让我们看看 “空”内容是指不包含以下内容的内容: #PCDATA 那么,空格字符是否属于上述任何一种情况,所以我可以推断不是空的p元素。不管HTML4规范如何劝阻 指的是那些元素类型,其实例永远

:

我们不鼓励作者使用空的p元素

用户代理应该 忽略空的P元素

如何定义空?

标记之间的空格字符是否算数

之间添加一个新行字符怎么样?

自动关闭标记明确定义了空元素,如

。我认为很有理由期望一个开始标记紧跟着一个结束标记,比如

也定义了一个空元素。

是否限定为“空”可能取决于用户代理,但让我们看看


“空”内容是指不包含以下内容的内容:

  • #PCDATA
那么,空格字符是否属于上述任何一种情况,所以我可以推断

不是空的
p
元素。不管HTML4规范如何劝阻


指的是那些元素类型,其实例永远不能包含br和img等内容,而不是碰巧没有内容的实例。所以P元素的实例永远不会构成“void元素”

HTML5规范没有对避免“空”或“空”元素做出这样的评论


…我真的不太担心它。

从技术角度看,空白是一种东西。它占用内存并有自己的字符代码。它是一个只包含空格的字符

也就是说,空格和换行符对于大多数浏览器来说是一样的。从这个角度来看,带有其中一个的“p”标记将被视为“某物”

然而,W3C对此的说法和特定浏览器供应商的说法往往是完全不同的。据我所知,大多数浏览器都尊重这一点,但有些浏览器可能仍然会将“p”标记视为包含内容,而实际上它没有


最佳实践是使用CSS提供间距和打断。如果只需要换行符,则在段落上使用“br”标记。“p”标记是用于语言构造“段落”的语义标记,因此不鼓励将其用作布局元素。

据我所知,空的
标记包括


(如果你想真正做到技术性,
,因为所有Unicode HTML空白在技术上都使用1-4字节)在技术上不会是空的,但肯定不会鼓励你这样使用它,如果你是,你应该看看原因,因为这可能不是最好的选择


一个
标记意味着包含一段文本。

这来自HTML4规范;正如您所知,您可能应该注意参考当前信息。如果我有一个空白段落,我会将

放在安全的地方。浏览器实际上并不遵守HTML4.01建议,因为人们可以很容易地检查,例如使用



,这应该与



没有区别,但事实上确实如此。因此HTML5 CR反映了现实。这个问题只是理论上的,当HTML5正式取代HTML4.01时,它就不再是理论上的问题了。HTML5中的术语“Void elements”指的是那些元素类型,它们的实例永远不会有br和img这样的内容,而不是碰巧没有内容的实例。所以P元素的实例永远不会构成一个“无效元素”。@Alohci打算请求引用。感谢您的澄清。请注意/>XML语法在HTML中毫无意义。HTML 4中所有验证的唯一原因是验证程序分别将它们视为
和,它们都是有效的。验证器会在每个示例中发出有关使用/>的警告。例如,某些内容无法验证,原因与此相同:因为缺少必需的结束标记。请勿对任何换行符使用
br
,仅对有意义的换行符(如地址或诗歌中的换行符)使用。
<!-- %inline; covers inline or "text-level" elements -->
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">