0

我刚刚再次阅读 HTML5 规范,以了解是否可以navheader. 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 的大纲是否仍然像大约一年前那样破碎?或者现在是否有工具或东西可以正确处理它?

4

1 回答 1

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。

于 2014-01-12T03:12:50.380 回答