前端日常一问:你对HTML语义化如何理解的?
在面试的过程中,基本上都会被面试官问到你是如何理解HTML标签语义化的?使用div不就好了,为什么还要使用语义化标签呢?有什么好处?
何为语义化标签?
语义化是根据内容的结构,选择合适的标签(代码语义化),便于开发者阅读和写出更优雅的代码,并能让浏览器的爬虫和机器很好地解析。
下图展示了一个典型的页面结构

具体来说就是使用正确的标签做正确的事情。
一个语义化标签可以同时给开发者和浏览器描述其意义,清楚的说明关于其内容的信息。
使用语义化标签的好处?
- 更易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。
- 有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
- 方便其他设备解析,如盲人阅读器根据语义渲染网页
- 有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。
语义化标签有哪些?
| 标签 | 说明 | 
|---|---|
| <article> | 页面独立的内容区域 | 
| <aside> | 页面的侧边栏内容 | 
| <bdi> | 用于多语言混合时指定语言或者书写方向,允许设置一段文本,使其脱离其父元素的文本方向设置 | 
| <command> | 命令按钮 | 
| <details> | 用于描述文档或文档某个部分的细节 | 
| <dialog> | 对话框 | 
| <summary> | 标签包含details元素的标题 | 
| <figure> | 规定独立的流内容(图片、图表之类的) | 
| <figcaption> | figure元素的标题 | 
| <footer> | section或者document的页脚 | 
| <header> | 文档的头部区域 | 
| <mark> | 带有标记的文本 | 
| <meter> | 度量衡 | 
| <nav> | 导航链接的部分 | 
| <progress> | 任何类型的任务的进度 | 
| <ruby> | ruby注释(中文注音或字符) | 
| <rt> | 字符的解释或发音 | 
| <rp> | 在 ruby 注释中使用,不支持 ruby 元素的浏览器所显示的内容。 | 
| <section> | 文档的段落 | 
| <time> | 日期或者时间 | 
| <wbr> | 规定在文本中的何处适合添加换行符 | 
| <sub> | 下标 | 
| <sup> | 上标 | 
| <var> | 变量 | 
| <wbr> | 规定在文本中的何处适合添加换行符 | 
| <menu> | 功能菜单时使用 | 
| <main> | 表示页面的主要内容 | 
如何正确的使用语义化标签?
比如我们熟悉的MDN,页面结构元素的使用如下:

语义化标签就是用更合适的标签代替<div>和<span>,如果使用不好,不如不用。
所以在日常开发中,尽可能使用自己熟悉的语义标签,并有把握的引入。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号