nav
nav元素是一个可以用来作为页面导航的链接组;其中的导航元素链接到其他页面或当前页面的其他部分。并不是所有的链接组都要被放进
元素;例如,在页脚中通常会有一组链接,包括服务条款、首页、版权声明等;这时使用 元素是最恰当的,而不需要 元素。一直以来,我们都习惯用如下这种方式来定义导航条:
<nav><ul><li><a href="index.html">Home</a></li><li><a href="/about/">About</a></li><li><a href="/blog/">Blog</a></li></ul></nav>
下面是W3C给出的一个代码示例:
<body><h1 id="The-Wiki-Center-Of-Exampland">The Wiki Center Of Exampland</h1><nav> <ul> <li><a href="/">Home</a></li> <li><a href="/events">Current Events</a></li> ...more... </ul></nav><article> <header> <h1 id="Demos-in-Exampland"> Demos in Exampland</h1> <p>Written by A. N. Other.</p> </header> <nav> <ul> <li><a href="#public">Public demonstrations</a></li> <li><a href="#destroy">Demolitions</a></li> ...more... </ul> </nav> <div> <section id="public"> <h1 id="Public-demonstrations">Public demonstrations</h1> <p> ...more...</p> </section> <section id="destroy"> <h1 id="Demolitions">Demolitions</h1> <p>...more...</p> </section> ...more... </div> <footer> <p><a href="?edit">Edit</a> | <a href="?delete">Delete</a> | <a href="?Rename">Rename</a></p> </footer> </article> <footer> <p><small>© copyright 1998 Exampland Emperor</small></p> </footer> </body>
HTML5学习笔记简明版(3):新元素之hgroup,header,footer,address,nav
nav并不是为了表示所谓导航栏,而是表示"导航性质的内容"。语义上,导航是跟内容无关的,比如到首页的链接,到下一篇文章的链接,到其它栏目的链接等等,但是如果是内容本身所引述的的其它文章的链接,那么就不宜放在导航里面。
HTML5 里 section article 什么区别?header footer nav 该怎么理解?
HTML5 很多新的元素容易产生误解,其中有一部分原因是因为有些元素本身有歧义,所表达的语义在规范中也是在不断修正的。
并不是指视觉上的导航栏,而是表示带有导航性质的内容,准确的说: 元素表示一个包含多个链接的区域,这些链接指向其他页面或本页面的其他部分。需要注意以下几点:
并不是所有的链接都要放到 nav 元素里面,该元素内应包含用于构成主要导航区块的部分。举个反例,通常页脚有链接列表链接到网站的其他页面,比如:服务、首页、版权页。这种情况下,仅仅用 footer 元素就够了,没必要使用 nav 元素。
如果nav 元素里面的内容描述的是一个项目列表,那就应该用列表标记(ol,ul等)帮助理解(增强语义)和导航。
用户代理(如屏幕阅读器)可以通过该元素来确定页面上哪些内容可以直接跳过或者按要求提供选择。
所以通常一个页面导航可以这样写:
<nav><ul><li><a href="index.html">Home</a></li><li><a href="#about">About</a></li><li><a href="#">Contact</a></li></ul></nav>
或者:
<div id="nav"><ul><li><a href="index.html">Home</a></li><li><a href="#about">About</a></li><li><a href="#">Contact</a></li></ul></div>
nav 元素还可以用在以下场景:
html导航菜单为什么都用li+a标签,而不直接用a标签,或者用nav+a标签,html5中导航菜单该怎样写?
@丁小倪 的说法有点偏激了。nav元素是区块内容(sectioning content),也就是会最终影响文档大纲(outline)生成的元素。它仅仅反映其内容包含导航,但并没有表达其内容的形式。导航内容可以是一个链接的列表,也可以是一段自然文本中内嵌了导航链接。
按 W3C 对 nav元素的描述(
the nav element
)中给出的适用场景例子,我简化一下,用法可以是:
<nav><ul><li><a href="/home">Home</li><li><a href="/about">About</a></li><li><a href="/links">Links</a></li></ul></nav>
也可以是:
<nav><h1 id="Navigation">Navigation</h1><p>Welcome to my website. To see latest blog posts, please go to <a href="/blog">my blog</a>. You can find my books and papers in the <a href="/publications">publication</a> section. If you are interested in my work, please contact me by fill in the contact form <a href="/contact">here</a>.</p></nav>
如果内容是列表,那用ul>li的方式也是很合适的,并不能说滥用。一个列表并不会因为它被放在 nav 中就不是列表了,这是内容本质的问题。nav相比 ul从语义上来说,抽象层次更高,因为它甚至已经与内容的组织形式解耦了。
而对于 dd、dl、dt,你可以把它看成一个名值对的列表,常与 dfn元素一起使用,比较合适的场景是元数据的表达、词典的词条等等。@赵望野 的说法也有点问题,dt与 dd并不需要成对出现,它们是多对多的映射(
dl element
)。可以看下 HTML5 Doctor 上的这篇文章:
The dl element
要想对 HTML 元素有更深入的理解,我个人比较推荐结合 HTML5 Doctor 上的文章和 HTML5 规范来阅读。
做导航栏为什么用ul>li,而不用dd dt dl?

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

HTML的功能是定义网页的结构和内容,其目的在于提供一种标准化的方式来展示信息。1)HTML通过标签和属性组织网页的各个部分,如标题和段落。2)它支持内容与表现分离,提升维护效率。3)HTML具有可扩展性,允许自定义标签增强SEO。

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。

HTML、CSS和JavaScript在网页开发中的角色分别是:HTML负责内容结构,CSS负责样式,JavaScript负责动态行为。1.HTML通过标签定义网页结构和内容,确保语义化。2.CSS通过选择器和属性控制网页样式,使其美观易读。3.JavaScript通过脚本控制网页行为,实现动态和交互功能。

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增强WebevebDevelopment。

HTML是构建网页结构的基石。1.HTML定义内容结构和语义,使用、、等标签。2.提供语义化标记,如、、等,提升SEO效果。3.通过标签实现用户交互,需注意表单验证。4.使用、等高级元素结合JavaScript实现动态效果。5.常见错误包括标签未闭合和属性值未加引号,需使用验证工具。6.优化策略包括减少HTTP请求、压缩HTML、使用语义化标签等。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!