语义化标签
什么是标签语义化
标签的语义
通过标签判断内容语义,例如根据h1
标签判断出内容是标题,根据<p>
判断内容是段落、<input>
标签是输入框等。
web布局的变化
table布局
Dreamweaver+table布局=大量的 table\tr\td标签
图片来自书籍《编写高质量代码——Web前端开发修炼之道》
浏览器通过标签获得语义,而table、tr、td标签的语义分别是表格、单元行、单元列,无法直接判断出该网页的标题等内容,浏览器难以确定该网页的主要内容。
Html + CSS 布局
Hhml 专注结构,CSS专注布局。对比只有html的页面和加入CSS的页面,如下:
没有CSS时的页面:
有CSS时的页面:
判断标签是否语义化
去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读性。
为什么标签要语义化
- 搜索引擎友好。
- 更容易让屏幕阅读器读出网页内容。
- 去掉或样式丢失的时候能让页面呈现清晰的结构。
- 便于团队开发和维护。
如何使标签更具语义化
标题内容型
标题使用<h2>
而不是<div class="h2">
,段落使用<p>
标签,锚点使用<a>
。
表单
分组表单要用<fieldset>
标签包起来,并用<legend>
标签进行说明表单的用途。
每个<input>
标签对应的说明文本都需要使用label
标签,并且通过为<input>
设置id
属性,在<label>
标签中设置“for=someId”来让说明文本和相应的<input>
关联起来。
表格
表格标题要使用<caption>
,表头使用<thead>
包围,主体部分使用
包围,尾部使用
tfoot包围,表头和一般单元格要区分开,表头用
th,一般单元格用
td`。
应注意的问题
- 尽可能减少使用无语义标签
div
和span
。 - 语义不明显,可以用
p
也可以使用div
的情况下,尽量用p
。 - 不要使用纯样式标签,例如
b
、font
和u
等,改用CSS设置。 - 使用HTML5的结构元素,HTML5新特性一节中会介绍。
部分标签全称与中文翻译
标签名 | 英文全拼 | 中文翻译 |
---|---|---|
div | division | 分隔 |
span | span | 范围 |
ol | ordered list | 排序列表 |
ul | unordered list | 不排序列表 |
li | list item | 列表项目 |
dl | definition list | 定义列表 |
dt | definition term | 定义术语 |
dd | definition description | 定义描述 |
del | deleted | 删除 |
ins | inserted | 插入 |
h1-h6 | header 1 to header 6 | 标题1到标题6 |
p | paragraph | 段落 |
hr | horizontal rule | 水平尺 |
a | anchor | 锚 |
abbr | abbreviation | 缩写词 |
acronym | acronym | 取首字母的缩写词 |
address | address | 地址 |
var | variable | 变量 |
pre | preformatted | 预定义格式 |
blockquote | block quotation | 区块引用语 |
strong | strong | 加重 |
em | emphasized | 加重 |
b | bold | 粗体 |
i | italic | 斜体 |