『速查手册』HTML 语义化标签 | 语义化标签必要性?
文章目录
- 『速查手册』HTML 语义化标签 | 语义化标签必要性?
-
- 一、语义化
- 二、语义化元素「速查表」
-
- 1、速查表「部分」
- 2、语义化布局图
- 3、相关讲解点
- 三、HTML 语义化元素的必要性
- 四、第三方标签扩展「了解」
- 五、参考资料
- 六、相关博文
一、语义化
HTML5 进一步推进了 Web 语义化发展,采用了诸如
、
等元素,弥补了采用id="footer"
或者 class="footer"
形式的不足,以更好的推动Web的发展。
在大多数情况下,我们说的语义化元素指的是 HTML5 中新增元素,语义元素清楚地向浏览器和开发人员描述了它的含义,每个标签都有自己的身份,每个身份都代表着各自分工,基于这个思想其实大多数标签可以是语义化元素,、
则为非语义化元素。基于 HTML5,参考此 网站 可以快速了解语义化布局页面。
二、语义化元素「速查表」
1、速查表「部分」
标签 |
描述 |
元素等级 |
|
规定页面或节的页眉 |
块级 |
|
规定页面或节的主内容 |
块级 |
|
规定页面或节的页脚 |
块级 |
|
定义导航链接 |
块级 |
|
表示页面内容的某一块可独立分配或可复用的结构,它可能是论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组件,或者其他独立的内容项目。简单来讲就是一块文章、条目或独立内容的外层包裹 |
块级 |
|
表示页面内容以外的内容,是独立于某内容的一部分并且可以被单独的拆分出来而不会使整体受影响。一般用于侧边栏、标注框、tips |
块级 |
|
比较实用的标签,用于查看或隐藏额外内容,配合 使用 |
块级 |
|
定义 元素的可见标题 |
单元素为块级,中第一个为列表元素 |
|
定义重要的或强调的文本 |
行内 |
|
以机器可读的形式,定义时间/日期文本 |
行内 |
|
可附标题内容元素,配合 使用, 通常为图像、图表、代码片段添加一个说明元素 |
块级 |
|
定义 所包裹元素的说明 |
块级 |
|
表示 HTML 文档中一个通用独立章节 |
块级 |
2、语义化布局图
页面布局方式有很多种,可根据实际情况进行选择,该图仅作参考。
3、相关讲解点
-
与
元素能够在不使用 js 的情况下,查看或隐藏额外内容,是比较实用的标签。以一个卡片 ui 的例子,展示其妙用。
<style>
p {
padding: 0;
margin: 0;
}
.panel-openai {
display: flex;
flex-direction: column;
align-items: center;
width: 16em;
padding: .5em;
border: 1px solid #000;
border-radius: .5em;
}
.panel-openai .openai-img {
width: 5em;
}
.panel-openai .openai-detail {
align-self: flex-start;
width: 100%;
}
.panel-openai .openai-detail > summary {
display: block;
text-align: center;
margin: .2em 0;
color: #0066CC;
border-radius: 3% / 50%;
list-style: none;
cursor: pointer;
}
.panel-openai .openai-detail > summary::-webkit-details-marker {
display: none;
}
.panel-openai .openai-detail > summary:hover {
color: #FFF;
background-color: #BEBEBE;
}
.panel-openai .openai-detail[open] > summary {
font-size: 0;
height: 5px;
margin: 10px 0;
background-color: #BEBEBE;
}
style>
<main>
<article class="panel-openai">
<img src="https://seeklogo.com/images/O/open-ai-logo-8B9BFEDC26-seeklogo.com.png" alt="openai" class="openai-img">
<p>OpenAI(开放人工智能)是美国一个人工智能研究实验室,由营利组织 OpenAI LP 与母公司非营利组织OpenAI Inc 所组成。p>
<details class="openai-detail">
<summary>详情summary>
<p>目的是促进和发展友好的人工智能,使人类整体受益。OpenAI成立于2015年底,总部位于加利福尼亚州旧金山,组织目标是通过与其他机构和研究者的“自由合作”,向公众开放专利和研究成果。创始人山姆·柯曼以及伊隆·马斯克的动机是出于对强人工智能潜在风险的担忧。至2018年,OpenAI的总部坐落于旧金山的米慎区,与伊隆·马斯克的另一座公司Neuralink在同一办公室大楼。p>
details>
article>
main>
-
比较偏向于叶分支,一般为图像、插图、图表、代码片段等使用,特点是子元素只有两个部分,一个内容,一个内容描述,内容描述使用
定义。这个比较容易理解且使用上,要为图片或则代码片段添加标题或描述的场景下,将传统的 嵌套,改成
即可。
<style>
figure {
width: 500px;
display: flex;
flex-direction: column;
}
figure figcaption {
text-align: center;
color: #FFF;
background-color: #222;
}
style>
<figure>
<img src="https://w.wallhaven.cc/full/e7/wallhaven-e7jj6r.jpg" alt="壁纸图片">
<figcaption>An elephant at sunsetfigcaption>
figure>
-
以往大多数做法是为时间包裹一个
,将
替换成
能够增强浏览器识别功能。该元素拥有两个属性:
- datetime:存放一个能被浏览器识别的时间日期,将转化为时间戳与
元素关联。
- pubdate:该属性仍在被 WHATWG 和 W3C 组织设计和讨论中。主要作用是标识文档的发布日期,若祖先元素存在
则表示最近
元素的发布日期,不存在则表示整个文档/页面的发布日期。
<article>
<p>该文章发布于 <time datetime="2011-01-28" pubdate>2011-01-28time>。p>
article>
<article>
<p>游戏争霸赛将于 <time datetime="2001-05-15 19:00">六月十六日time> 举行。p>
article>
三、HTML 语义化元素的必要性
最直观的一点,语义元素运用洽淡的代码比非语义化元素的好读多了,页面布局非常直观,这对于后期维护来讲十分友好,语义元素清楚地向浏览器和开发人员描述了它的含义,不需要通过寻找 class
、id
等元素属性查阅代码。
在 HTML5 还未出来之前,以往的做法是在 div
元素添加 id
、class
属性进行标识,直到现在也有很多人会这么做