我喜欢HTML 5标准中的新标签。我可以多次使用它们吗?
与3个<nav>
代码或两个<sidebar>
代码相比,我可以创建像<fuu>
这样的新代码吗?
在xhtml中我有:
<div class="nav-wrap">
<div class="nav">
...
</div>
</div>
所以我可以这样做:
<nav class="wrap">
<nav> <!-- can <nav> have <li>'s ? -->
...
</nav>
</nav>
答案 0 :(得分:15)
<nav>
元素在html5 spec中定义,但<sidebar>
元素不是。您可以根据需要使用尽可能多的<nav>
元素(只要它们不是嵌套的),但是您必须提供其他DTD并希望用户使用的浏览器足够灵活接受新元素。
我建议不定义新元素,只需使用现有的语义元素来创建你想要的效果。
<div class="sidebar"></div>
已经足够好了,如果您将主要内容包装在<main>
中,它将被视为辅助内容,这有效地提示浏览器了解该区域不是页眉,页脚,或主要内容,在大多数网站上等同于侧边栏。
但是,在大多数情况下,<aside>
元素适合用作边栏。
旁边元素表示页面的一部分,该部分由与旁边元素周围的内容相切的内容组成,并且可以认为与该内容分开。 此类部分通常在印刷字体中表示为侧边栏。
强调我的
答案 1 :(得分:5)
'nav'元素应该在有'main'导航的地方使用,通常是在你网站的标题中,但它也可以在你让用户导航当前页面的地方。
通常不需要将它放在你的页脚中(因为它通常不被认为是你的主要导航),虽然它不会真的受伤。
zzzzBov的答案并不完全正确,所以让我试着给出一个更准确的例子。
作为“侧边栏”的替代方案,您应该使用“旁白”标记,该标记通常包含辅助内容(如侧面导航,链接,广告,类似的内容)。
<div class="sidebar"></div>
这是不在语义上是一个侧边栏,远离它。 div元素用作样式或JavaScript的钩子,没有语义含义,这就是为什么引入'aside'元素,请使用它!
如果你只需要一个造型包装,那么一个div是完美的(甚至是首选)。
根据经验,您的HTML应包含描述您的内容的元素。你通常可以大声朗读它,这是有道理的。
例如:“我的页面侧面有一个导航元素列表”,将翻译为:
<aside>
<nav>
<h1>Navigation</h1>
<ul>
<li><a href="/someplace">Link to someplace</li>
<li><a href="/someplace-else">Link to someplace else</li>
</ul>
</nav>
</aside>
总而言之:一般来说,您可以在主要导航区域使用导航元素,例如网站标题中的导航,有时会找到导航当前页面的导航。
不是主要内容(但可能相关)的网页部分通常放在“旁边”元素中。
希望这有帮助!
答案 2 :(得分:1)
在nav
:
<nav class="wrap">
<ul>
<li>...
</ul>
</nav>
您可以在页面中拥有尽可能多的nav
个元素,但不需要在nav
中包装每个链接或一组链接 - 只有“主要导航”应该是在nav
元素中。有good introduction to nav
in this HTML5 Doctor post。
对于侧边栏,无需创建自己的元素,请使用aside
element。
您可以创建自己的元素,并且仍然可以在HTML5兼容的浏览器中使用您的标记,HTML5 tokenization algorithm并不关心您使用的标记名称,只要它们遵守规则,但您不会然后写HTML5,这是毫无意义的。我建议在规范开头阅读"Conformance requirements for authors"部分,特别是“可能是拼写错误的案例”:
当用户输入简单的拼写错误时,就是这样 如果可以捕获错误,将会很有帮助 早,因为这可以拯救作者 很多调试时间。这个 因此通常是规范 认为使用元素是一个错误 名称,属性名称等, 与中定义的名称不匹配 这个规范。