HTML语义化的案例分析 | 青训营

50 阅读3分钟

语义化标签介绍

html 提供了大量语义化标签,希望开发者能尽可能地用正确的 HTML 标签来表达正确的意图。

以下是一些比较常用的语义化标签:

  1. <header>:表示文档或节的页眉。
  1. <nav>:表示导航链接。
  1. <main>:表示文档的主体内容,一个页面只能出现一次。
  1. <article>:表示一个可以独立展示或分发的内容块,比如新闻文章、博客文章等。
  1. <aside>:表示一个页面或文章的旁注栏,比如侧边栏、广告等。
  1. <footer>:表示文档或节的页脚。

以一个博客网页为例

  • 博客网页的导航栏适合使用<nav>标签
  • 博客文章的标题适合使用<header>标签
  • 博客文章的文章内容适合使用<article>标签

语义化的意义

与只会使用div标签开发相比,使用语义化标签有以下优点

  1. 更便于开发:语义化标签可以使代码中的HTML标签结构更易于理解,并且可以直接使用标签自带的属性和方法。
  2. 更适配移动端:语义化的 HTML 文件比非语义化的 HTML 文件更加轻便,并且更易于响应式开发。
  3. 更便于 SEO 优化:比起使用非语义化的<div>标签,搜索引擎更加重视在“标题、链接等”里面的关键字,使用语义化可使网页更容易被用户搜索到。
  4. 更能兼容不同设备:不同设备和浏览器可以根据标签的语义来正确地解析和显示页面。

语义化案例分析

以搜索引擎必应为例:

  1. 搜索内容上方的元素都使用<header>包裹起来,表示页面顶部的内容;页面底部的备案号使用 <footer> 标签,结构清晰。

1.png

2.png

  1. 搜索框使用 <form> 标签中嵌套 <input> 标签实现,符合表单与输入框的语义,便于理解。

3.png

  1. 搜索框下方的选项卡使用 <nav> 标签与 <ul> <li> 结构实现,当网络较差,浏览器无法加载 CSS 时,选项链接仍然能用。

4.png

  1. 搜索结果使用 <main> 标签,表示网页的主体内容。

5.png

  1. 右侧的相关搜索使用 <aside> 标签,符合侧边栏的语义信息。

QQ截图20230825202338.png

值得注意的是,必应在使用语义化标签的同时,还使用了 aria-label 属性标注了该标签下主要作用,增强了 html 的可读性。

在日常开发中使用语义化标签

  1. 使用合适的标签划分页面的结构,如:使用 <header> 标签,<main> 标签,<footer> 标签划分页面的顶部,主要内容,底部,使html 结构更加清晰。
  2. 合理运用语义化标签自身的属性,markdown 渲染后的代码块往往会使用 <pre> <code>标签,不仅符合语义化,还使用到了预定义格式文本、代码文本带来的样式属性。
  3. 减少使用 <div> <span> 标签,使用时可以想想该标签能否被合适的语义化标签替代。