HTML标签语义化
什么叫HTML语义化?
用合理的HTML标签以及其特有的属性去格式化文档内容.
HTML语义化的好处
- 优化SEO
更好地支持搜索引擎的爬虫, 使搜索引擎抓取到页面上更多的有效信息
- 对盲人阅读器和其它阅读器友好
- HTML代码的可读性, 可维护性, 开发效率更高(减少规范不一致带来的沟通成本)
- 浏览器们都在推动语义化, 遵循HTML语义化可能会得到更好的展示效果
怎么做语义化?
核心是减少无意义的<div>
, 使用有表达意义的标签.
那么<div>
用在哪? 用在做容器的时候, 仅仅用来构建外观和结构.
结构(节元素)标签的语义化
遵循HTML的结构标签用法和作用范围
<header>
内容区域的头部内容<section>
区别于<article>
定义一个完整的内容,<section>
定义一个独立的小节, 内容相对比较短, 可能会有标题.<section>
经常嵌套在<article>
中<nav>
定义文档的导航链接, 指向当前页面的关键部分, 或者其它页面. 但是不要用于页脚和其它区域转向链接(应该用<address>
).<article>
包裹一个独立内容区域, 一般包含标题和正文. 允许嵌套. 其实是一个特殊的section.<aside>
常用于定义侧边栏, 或者广告. 当被用在<article>
中时, 又表示一个特殊的<section>
, 包裹一些与当前文章有关的附属信息. 比如名词解释.<footer>
常用于定义页脚或某个区域的底部
文本标签的语义化
不同的文本标签, 本质并不是要定义样式, 而是要区分内容.
<span>
无语义<a>
anchor, 超链接<b>
bold, 纯粹吸引注意力, 但不传达重要性, 不加强语气<em>
emphases, 起局部强调作用, 声明重点内容, 常用于句子内<strong>
全文强调, 程度更高<i>
意大利手写体, 在英文文本中, 声明内容的特殊性(不同一般, 奇怪), 但在中文中斜体很少用, 一般用作引用字体图标<q>
较短的引文<blockquote>
较长的引文<cite>
引文的出处<time>
定义日期, 加上pubdate属性常表示发布日期<code>
代码块<pre>
预格式文本, 保留空格和换行符, 等宽字体, 常用于 长 代码块<abbr>
缩写名词, 可以在它的title
属性中写出全称<dnf>
定义一个术语<br>
文本内的换行符, 如果是想在页面上实现换行效果, 应该用display
属性将其块级化<figure>
定义一块独立内容, 该内容被删除不影响周围内容, 一般用于包裹图片, 图表, 音频, 代码等.<figcaption>
是它专用嵌套属性, 声明标题.