Nav标签_html/css_WEB-ITnose
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?

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

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

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

网页批注功能的Y轴位置自适应算法本文将探讨如何实现类似Word文档的批注功能,特别是如何处理批注之间的间�...

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。

实现图片点击后周围图片散开并放大效果许多网页设计中,需要实现一种交互效果:点击某张图片,使其周围的...
