我在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元素表示的)不能包含第二段文本。

10-05 23:36
查看更多