我在firebug中使用“编辑Html”并插入以下代码:
<div title="show-details">
X
<p class="quick-details">
<p title="about-player">
<p title="name">Drew Brees #9</p>
<p title="position">Quarterback</p>
<p title="team">The Saints</p>
</p>
</p>
</div>
但是,当我离开编辑html模式时,DOM中实际上是这样的:
<div title="show-details">
X
<p class="quick-details">
</p><p title="about-player">
</p><p title="name">Drew Brees #9</p>
<p title="position">Quarterback</p>
<p title="team">The Saints</p>
<p></p>
<p></p>
</div>
我是否遗漏了
p
元素的工作原理?MDC说内容可以是任何流元素。这些是从哪里来的?是火狐吗?萤火虫?在我接受答案之前进行编辑:显然
</p>
不能嵌套在<p>
中,这是不是意味着the MDC is wrong或者我在某种程度上误解了它? 最佳答案
由于p
元素不允许在另一个p
元素中,并且它的结束标记是可选的,所以Firebug(或者更确切地说,底层HTML/SGML解析器)在它(正确地)猜测应该有一个结束标记的地方插入一个结束标记。
编辑:HTML 4.01 spec在这方面非常清楚;您不能嵌套p
元素(在这方面,MDC是不正确的)。然而,HTML5 spec在主题上是非常不清楚的(我已经提交了关于这个问题的反馈),HTML5规范在主题上是非常清楚的,我只是看错了,常识和排版效果都表明一段文本(这个p
元素表示的)不能包含第二段文本。