我们都知道,前端技术栈由HTML,CSS,JavaScript,HTTP组成。HTML,CSS,JavaScript分别被用来表示前端的页面,结构和内容。其中,HTML的语法由标签构成,这些标签大部分是语义化标签,本文将对常用的语义化标签的含义及用法做一个梳理与总结。
一、HTML语义化标签的含义
语义化标签,就是有意义的标签。
<p>一行文字</p>
<span>一行文字</span>
如上代码,p 标签与 span 标签都区别之一就是,p 标签的含义是:段落。而 span 标签则没有独特的含义。因此,p 是语义化标签,而span不是语义化标签。
二、语义化标签的优点
- 代码结构清晰,方便阅读,有利于团队合作开发。
- 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以语义的方式来渲染网页。
- 有利于搜索引擎优化(SEO)
三、常用的语义化标签
-
<title>:页面主体内容 -
<hn>:h1 ~ h6,分级标题,<hn>与<title>协调有利于搜索引擎优化 -
<ul>:无序列表 -
<ol>:有序列表 -
<header>:页眉通常包括网站标志、主导航、全站链接以及搜索框。 -
<nav>:标记导航,仅对文档中重要的链接群使用。 -
<main>:页面主要内容,一个页面只能使用一次。如果是web应用,则包围其主要功能。 -
<article>:定义外部的内容,其中的内容独立于文档的其余部分。 -
<section>:定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。 -
<aside>:定义其所处内容之外的内容。如侧栏、文章的一组链接、广告、友情链接、相关产品列表等。 -
<footer>:页脚,只有当父级是body时,才是整个页面的页脚。 -
<small>:呈现小号字体效果,指定细则,输入免责声明、注解、署名、版权。 -
<strong>:和em标签一样,用于强调文本,但它强调的程度更强一些。 -
<em>:将其中的文本表示为强调的内容,表现为斜体。 -
<mark>:使用黄色突出显示部分文本。 -
<figure>:规定独立的流内容(图像、图表、照片、代码等等)(默认有40px左右margin)。 -
<figcaption>:定义figure元素的标题,应该被置于figure元素的第一个或最后一个子元素的位置。 -
<cite>:表示所包含的文本对某个参考文献的引用,比如书籍或者杂志的标题。 -
<blockquoto>:定义块引用,块引用拥有它们自己的空间。 -
<q>:短的引述(跨浏览器问题,尽量避免使用)。 -
<time>:datetime属性遵循特定格式,如果忽略此属性,文本内容必须是合法的日期或者时间格式。 -
<abbr>:简称或缩写。 -
<dfn>:定义术语元素,与定义必须紧挨着,可以在描述列表dl元素中使用。 -
<address>:作者、相关人士或组织的联系信息(电子邮件地址、指向联系信息页的链接)。 -
<del>:移除的内容。 -
<ins>:添加的内容。 -
<code>:标记代码。 -
<meter>:定义已知范围或分数值内的标量测量。(Internet Explorer 不支持 meter 标签) -
<progress>:定义运行中的进度(进程)。
四、HTML5新增的语义化标签
<section> :定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。
根据W3C HTML5文档: section 包含了一组内容及其标题。
使用实例:
<section>
<h1>WWF</h1>
<p>The World Wide Fund for Nature (WWF) is....</p>
</section>
WWF
The World Wide Fund for Nature (WWF) is....
<article>:定义独立的内容。.
使用实例:
<article>
<h1>Internet Explorer 9</h1>
<p>Windows Internet Explorer 9(缩写为 IE9 )在2011年3月14日21:00 发布。</p>
</article>
Internet Explorer 9
Windows Internet Explorer 9(缩写为 IE9 )在2011年3月14日21:00 发布。
<nav>:定义导航链接的部分。
<nav> 元素用于定义页面的导航链接部分区域,但是,不是所有的链接都需要包含在 <nav> 元素中!
使用实例:
<nav>
<a href="/html/">HTML</a> |
<a href="/css/">CSS</a> |
<a href="/js/">JavaScript</a> |
<a href="/jquery/">jQuery</a>
</nav>
HTML |
CSS |
JavaScript |
jQuery
<aside>:定义页面主区域内容之外的内容(比如侧边栏)。
aside 标签的内容应与主区域的内容相关。
使用实例:
<p>My family and I visited The Epcot center this summer.</p>
<aside>
<h4>Epcot Center</h4>
<p>The Epcot Center is a theme park in Disney World, Florida.</p>
</aside>
My family and I visited The Epcot center this summer.
Epcot Center
The Epcot Center is a theme park in Disney World, Florida.
<header>:描述了文档的头部区域。
<header>元素主要用于定义内容的介绍展示区域。
在页面中你可以使用多个<header> 元素。
以下实例定义了文章的头部:
<article>
<header>
<h1>Internet Explorer 9</h1>
<p><time pubdate datetime="2011-03-15"></time></p>
</header>
<p>Windows Internet Explorer 9(缩写为 IE9 )是在2011年3月14日21:00发布的</p>
</article>
Internet Explorer 9
Windows Internet Explorer 9(缩写为 IE9 )是在2011年3月14日21:00发布的
<footer>:描述了文档的底部区域。
<footer> 元素应该包含它的包含元素。
一个页脚通常包含文档的作者,著作权信息,链接的使用条款,联系信息等。
文档中你可以使用多个 <footer>元素。
使用实例:
<footer>
<p>Posted by: Hege Refsnes</p>
<p><time pubdate datetime="2012-03-01"></time></p>
</footer>
Posted by: Hege Refsnes
<figure>:规定独立的流内容(图像、图表、照片、代码等等)。
<figure> 元素的内容应该与主内容相关,但如果被删除,则不应对文档流产生影响。
<figcaption> 标签定义 <figure> 元素的标题。
<figcaption>元素应该被置于 "figure" 元素的第一个或最后一个子元素的位置。
使用实例:
<figure>
<img decoding="async" loading="lazy" src="转存失败,建议直接上传图片文件 img_pulpit.jpg" alt="The Pulpit Rock转存失败,建议直接上传图片文件" width="304" height="228">
<figcaption>Fig1. - The Pulpit Pock, Norway.</figcaption>
</figure>
以上是HTML语义化标签的基本知识,下节将对部分标签的用法进行进一步展开说明。