html5之语义化标签

html5之语义化标签

Posted by vxiaozhi on June 1, 2025

语义化标签

在[HTML5]标准中,新加了几个用于增添页面语义的标签,这些标签有:article、section、nav和aside等。与别的大多数标签不同,浏览器在解释渲染这些标签的时候仅仅把它们作为普通的div块级元素来进行处理,不会添加任何额外的展现逻辑;也即,这些标签仅用于增添语义。对于Web开发人员而言,使用这些标签的实际意义主要有2点:搜索引擎优化(SEO),以及增加页面的可用性(accessibility)。

在元素分类上,article、section、nav和aside称之为“Sectioning Content”。

article
article元素可用于表示页面上某块具有一定独立性的内容,这个内容可以是一篇文章、论坛上的一个帖子/评论、一篇博客、一个可交互的控件等。article标签可以嵌套使用,当这么做时,子article元素与父article元素在逻辑上必须有相应的关联。如Web开发者可以将一篇博客的正文以及评论作为父级article元素,而将其中的各个评论作为子article元素。

article元素内部不能出现main元素 – main元素意指页面的主要内容,当有main元素时,article元素作为main元素的子元素而存在。

section
section元素意指页面或Web应用中的一部分,不同的section互相之间其“主题”或者说“基调”应当有所不同,一般会通过在section元素内放置heading元素(h1-h6)来定义这个“主题”/“基调”。

一般来说,section元素都是多个并排出现的,互相之间在语义上有一定的并行关系。比如,可在一个article元素内部放置多个section元素,用于表示文章的章节。

把section当成div使用是一种错误 – 除了根据HTML页面上即可直接展现的内容之外,section的子元素不应该承担任何其它角色(样式、行为、辅助标签等)。

nav
nav元素主要用于包含页面上的导航链接,因此在nav元素中直接包含ul元素或者ol元素是一种非常常见的做法。尽管如此,nav中也可以不包含ul或者ol元素,比如在nav元素中可以包含一个文章段落(p标签),而在该文章段落中包含一些链接(a标签)。

与article元素一样,nav元素内部不能出现main元素。

aside
aside元素一般用于表示页面上的侧边栏,不过该元素仅仅只在语义上表示“侧边栏”,浏览器在解析渲染该标签时只会将其作为普通的div块级元素来进行处理。aside所包含的内容不是页面的主要内容、具有独立性,是对页面的补充。如果要真正得到侧边栏的效果,则Web开发人员需要自己编写CSS来实现。

main

标签用于指定文档的主体内容。
标签中的内容在文档中是唯一的。它不应包含在文档中重复出现的内容,比如侧栏、导航栏、版权信息、站点标志或搜索表单。 注意在一个文档中,
元素是唯一的,所以不能出现一个以上的
元素。
元素不能是以下元素的后代: - article - aside - footer - header - nav 1. **为什么HTML5要引入新语义标签** 在HTML5出现之前,我们一般采用DIV+CSS布局我们的页面。但是这样的布局方式不仅使我们的文档结构不够清晰,而且不利于搜索引擎爬虫对我们页面的爬取。为了解决上述缺点,HTML5新增了很多新的语义化标签。 2. **引入语义化标签的优点** - 比`
`标签有更加丰富的含义,方便开发与维护 - 搜索引擎能更方便的识别页面的每个部分 - 方便其他设备解析(如移动设备、盲人阅读器等)