我想知道为什么许多网站在标签内放置标签,根据规范,nav标签具有锚点标签,这里是w3schools的示例,为什么许多网站会像这样制作: <nav> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> </ul> </nav> 这是否正确,或者我们应该只做这样?<nav> <a href="#">Home</a> <a href="#">About</a> </nav>
通常来说,这并非必需的,但将导航项目放在列表中,并使用CSS将它们显示为行内元素是非常常见的做法(如果需要的话)。这不仅适用于HTML5 - 如果您在浏览器中禁用CSS,您的菜单将显示为: start about me contact(你能读到这个吗?) 而使用列表,则会显示为: start about me contact 考虑一下,在设计显示方面出现问题时,您希望看到哪个版本。
这里需要注意的是,像nav、section、header、footer等新标签的设计目的。这些标签本身并不与div有什么区别。人们开始在他们的HTML5网站上使用它们的原因是为了提供文档上下文。当我听到“Web 2.0”这样的术语时,我会翻白眼,但这些术语确实传达了我们如何思考如何使用网络的变化。每当你听到“Web 3.0”时...唉,它真正意味着的是人们正在尝试思考如何使网络更加语义化,这意味着用户体验将根据用户行为和偏好进行更多的定制。使用这些类型的标签标记您的文档有助于提供这种上下文。然而,它将如何呈现仍由您决定,我认为您提供的两个示例都是完全有效的。这里有一篇不错的文章,更详细地讨论了这个问题: http://html5doctor.com/lets-talk-about-semantics/
根据“nav”元素规范,它代表页面的一个部分,链接到其他页面或页面内的部分。规范并不强制要求“nav”元素内的任何特定结构。“ul”块则将导航链接组合在一起,以实现逻辑和/或实际目的。对于使用辅助技术浏览Web的用户来说,使用列表来组织导航块有益处,因为屏幕阅读器可以跳过整个导航块,从一个导航级别跳到另一个导航级别。参考资料: http://reference.sitepoint.com/html/ul http://html5doctor.com/nav-element/