HTML5 - 标题和大纲算法 - 混淆

时间:2013-10-18 18:33:29

标签: html html5

我刚刚再次阅读HTML5规范,以确定我是否可以在nav内嵌套header元素。如果你问我,header元素的段落是有点奇怪,但可能只是因为我不理解它。

  

在此示例中,页面具有h1元素给出的页面标题,   和两个小节,其标题由h2元素给出。该   header元素之后的内容仍然是最后一个子节的一部分   在header元素中开始,因为header元素不占用   参与大纲算法。

<body>
 <header>
  <h1>Little Green Guys With Guns</h1>
  <nav>
   <ul>
    <li><a href="/games">Games</a>
    <li><a href="/forum">Forum</a>
    <li><a href="/download">Download</a>
   </ul>
  </nav>
  <h2>Important News</h2> <!-- this starts a second subsection -->
  <!-- this is part of the subsection entitled "Important News" -->
  <p>To play today's games you will need to update your client.</p>
  <h2>Games</h2> <!-- this starts a third subsection -->
 </header>
 <p>You have three active games:</p>
 <!-- this is still part of the subsection entitled "Games" -->
 ...

来源:http://www.w3.org/TR/html5/sections.html#the-header-element

因此,根据评论,<p>You have three active games:</p>仍然是在标题内部开始的子部分的一部分,因为标题本身不会引入新的部分。

但这不会破坏构建HTML的嵌套结构吗?例如,这是无效的标记,因为嵌套是错误的:

<div>
    <p>
</div>
</p>

但是,如果我在理论上定义 - div不做任何事情,那么它会好吗?

请不要误会我的意思,这不是咆哮或任何事情,我只是想了解这背后的感觉是什么?另外,为什么标题元素列在部分下,如果它不是分区元素?

顺便说一句,HTML5概述是否仍然像大约一年前一样破碎?或者是否有工具或其他东西可以正确处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

  

所以,根据评论,

你有三个活跃的游戏:

是   仍然是该小节的一部分。

这里的关键字是根据评论,而不是代码。从技术上讲,该段是身体的一个孩子。我同意编码和注释不匹配,但代码在技术上并不正确。并且没有限制,评论或内容只能存在于一个块中。

<div>
    <p>
</div>
</p>

在技术上是不正确的,如果我添加一些CSS,你可以更清楚地看到。

div { height:100px; width:auto; }
p {display:block; height:50px; width:300px}

鉴于CSS上面的代码看起来是什么样的?

兼容的浏览器可能会将上述代码重写为

<div>
    <p></p>
</div>
<p></p>

在浏览器引擎重写之后,可以呈现HTML和CSS。