2

http://www.w3.org/TR/html51/syntax.html#optional-tags

根据 HTML5 规范:

如果p元素后面紧跟地址、文章、aside、blockquote、dir、div、dl、fieldset、footer、form、h1、h2、h3、h4、h5、h6、header,则可以省略 p 元素的结束标记, hgroup, hr, menu, nav, ol, p, pre, section, tableul , 元素,或者如果父元素中没有更多内容并且父元素不是 a元素。

[强调我的]

关于父元素不是a标签的最后一点是什么?为什么允许这样做:

<div>
<p>text...
</div>

但这不是:

<a>
<p>text...
</a>

根据规范,p理论上允许在http://www.w3.org/TR/html51/text-level-semantics.html#the-a-elementa中使用标签,那么为什么会有例外呢?

4

3 回答 3

3

我想那是因为该<a>元素是一个内联元素。

而列表中的所有其他元素(地址、文章、搁置、块引用、目录、div 等)都是块级别,因此它们可以关闭其他元素的范围,而内联元素则不然。

由于该<a>元素是唯一允许您将块级元素放入其中的元素(根据您提供的链接) - 这就是为什么他们在规范中特别提到了这个元素。

于 2013-02-13T16:44:49.070 回答
2

<p>因为在标签结束时总是结束标签是没有意义的<a>。在<div>'s 的情况下,如果你要关闭 ,<div>你几乎肯定也想关闭 the <p>,但对于<a>. 该超链接可以继续到下一段

于 2013-02-13T16:43:28.867 回答
1

由于 w3 定义段落的方式,可能不允许这样做:

在谈论列表如何不能在段落内时,规范说

段落,用 HTML 术语来说,不是一个逻辑概念,而是一个结构概念。在上面的精彩示例中,该规范实际上定义了五个段落:列表之前的一段,每个项目符号的一段,以及列表之后的一段。

在我看来,W3 打算将段落作为文本段落,而不是巨大的超链接,并且他们竭尽全力确保这一点。

于 2013-02-13T16:44:45.497 回答