在 HTML5 中,我知道<nav>可以在页面的标头 <header>元素内部或外部使用它。<nav>对于同时具有辅助导航和主导航的网站,将辅助导航作为标头元素内部的<header>元素包括主导航作为<nav>标头元素外部的元素似乎很常见<header>。<nav>但是,如果网站缺少辅助导航,则将主导航包含在标头元素内的元素中似乎很常见<header>。
<nav>
<header>
如果我遵循这些示例,我的内容结构将基于二级导航的包含或排除。这在内容和感觉不必要和不自然的风格之间引入了耦合。
有没有更好的方法,这样我就不会<header>根据包含或排除辅助导航将主导航从标头元素内部移动到外部?
<header> <nav> <!-- Secondary Navigation inside <header> --> <ul> <li></li> </ul> </nav> <h1>Website Title</h1> </header> <nav> <!-- Main Navigation outside <header> --> <ul> <li></li> </ul> </nav>
OnlineDegrees.org是一个遵循上述模式的示例站点。
<header> <h1>Website Title</h1> <nav> <!-- Main Navigation inside <header> --> <ul> <li></li> </ul> </nav> </header>
Keyzo.co.uk是遵循上述模式的示例站点。
Bruce Lawson 和 Remy Sharp介绍的 HTML5 对这个主题有这样的说法:
标题还可以包含导航。这对于站点范围的导航非常有用,尤其是在整个<header>元素可能来自模板文件的模板驱动站点上。 当然,不一定<nav>要在<header>. 如果很大程度上取决于您是否认为站点范围的导航属于站点范围的标题,以及关于样式易用性的务实考虑。
标题还可以包含导航。这对于站点范围的导航非常有用,尤其是在整个<header>元素可能来自模板文件的模板驱动站点上。
当然,不一定<nav>要在<header>.
如果很大程度上取决于您是否认为站点范围的导航属于站点范围的标题,以及关于样式易用性的务实考虑。
基于最后一句话,布鲁斯·劳森(Bruce Lawson)似乎是本章摘录的作者,他承认“关于易于造型的务实考虑”产生了内容和风格之间的耦合。
这完全取决于你。您可以将它们放在标题中,也可以不放在标题中,只要它们中的元素只是内部导航元素(即不链接到外部网站,如 twitter 或 facebook 帐户),就可以了。
它们往往被放置在标题中,因为这是导航经常去的地方,但它并不是一成不变的。
你可以在HTML5 Doctor阅读更多关于它的信息。