https://houdunren.gitee.io/note/html/2%20%E9%A1%B5%E9%9D%A2%E7%BB%93%E6%9E%84.html#语义标签
语义化标签是HTML5新特性
<header>里面。
一个页面可能包含多个<header>,但是一个具体的场景里面只能包含一个,比如网页的页眉只能有一个。另外,<header>里面不能包含另一个<header>或<footer>。
<footer>不能嵌套,即内部不能放置另一个<footer>,也不能放置<header>。
header和footer都不可以与自身嵌套,彼此之间也不能互相嵌套
一个页面只能有一个
<main>
<font style="color:#F5222D;"><main></font>是顶层标签,不能放置在<header>、<footer>、<article>、<aside>、<nav>等标签之中。
另外,功能性区块(比如搜索栏)不适合放入<font style="background-color:#FADB14;"><main></font>,除非当前页面就是搜索页面。
<article>标签表示页面里面一段完整的内容,即使页面的其他部分不存在,也具有独立使用的意义,通常用来表示一篇文章或者一个论坛帖子。
<article>,比如包含多篇文章。
<aside>标签用来放置与网页或文章主要内容间接相关的部分。网页级别的<aside>,可以用来放置侧边栏,但不一定就在页面的侧边;文章级别的<aside>,可以用来放置评论或注释。
下面是网页级别的<aside>的例子。
<body><main>主体内容</main><aside>侧边栏</aside></body>
下面是文章评注的例子。
<p>第一段</p><aside><p>本段是文章的重点。</p></aside>
<section>标签表示一个含有主题的独立部分,通常用在文档里面表示一个章节,比如<article>可以包含多个<section>。<section>总是多个一起使用,一个页面不能只有一个<font style="color:#F5222D;"><section></font>。
<article><h1>文章标题</h1><section><h2>第一章</h2><p>...</p></section><section><h2>第二章</h2><p>...</p></section></article>
上面代码中,<article>包含了两个<section>,代表两章。
<section>很适合幻灯片展示的页面,每个<section>代表一个幻灯片。
一般来说,<section>都应该有标题,即包含<h1>~<h6>标签。多个<font style="background-color:#FADB14;"><section></font>可以放置在同一个<font style="background-color:#FADB14;"><article></font>里面,一个<font style="background-color:#FADB14;"><section></font>里面也可能包含多个<font style="background-color:#FADB14;"><article></font>,这取决于<section>和<article>在当前页面的含义。
<nav>标签用于放置页面或文档的导航信息。
<nav>往往放置在<header>里面,不适合放入<footer>。另外,一个页面可以有多个<nav>,比如一个用于站点导航,另一个用于文章导航。
如果主标题包含多级标题(比如带有副标题),那么可以使用<hgroup>标签,将多级标题放在其中。
<hgroup><h1>Heading 1</h1><h2>Subheading 1</h2><h2>Subheading 2</h2></hgroup>
注意,<hgroup>只能包含<h1>~<h6>,不能包含其他标签。
拓展:
CSS语义化
如果说 HTML 语义化是给机器看的,那么 CSS 命名的语义化就是给人看的。ARIA
ARIA 即 Accessible Rich Internet Application,中文译为无障碍富互联网应用。其主要目的是为一些有功能障碍(如听力,视力)的人群通过屏幕阅读器例如 voiceover 等,提供无障碍访问动态、可交互Web内容。
其中应用于 HTML 的有两个关键属性:
- role:标识了一个元素的作用
- aria-*:描述了与之有关的事物特征及其状态
面试题
对语义化的了解
- 用正确的标签做正确的事情!
HTML语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;- 在没有样式
CSS情况下也以一种文档格式显示,并且是容易阅读的。网页加载慢导致CSS文件还未加载时(没有CSS),页面仍然清晰、可读、好看。 - 搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于
SEO。 - 使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解
