Skip to content
更新时间: 2024-02-12

什么是语义标签?

语义化标签其实可以理解为是对内容进行分类。比如说用 h1-h6 代表标题,那么看到 h1 就知道是大标题;使用 header 就知道,这个区域是页面的头部;使用 nav 就知道这个是导航栏;

使用语义化标签的好处有哪些?

  1. 代码结构清晰,方便阅读,有利于团队开发
    • 其实用上了前端的框架,一切都是组件化了之后,这点已经不需要了
    • 在排查错误的时候确实方便阅读。在浏览器渲染之后,如果你想排查错误,那还是有作用的
  2. 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以语义的方式来渲染网页。
    • 这点在国内似乎不是那么的重视。这方便都应该是决策层考虑的,毕竟是需要增加开发成本的,无法避免的要计算收益的问题。
  3. 有利于搜索引擎优化(SEO)。
    • 想到百度现在 SEO 完全失效的情况下,不过内部项目也完全不用考虑 SEO。但是作为独立开发,还是可以考虑一下必应和谷歌的 SEO 优化

非语义化标签有哪些?

只有两个 div 和 span

有哪些不能用 div 代替的标签呢?

a,audio,canvas,dialog,form,iframe,img,input,noscript,textarea,video,wbr
以上标签不包含放在 head 中的,只讨论放在 body 中的。
另外就是 embed 和 object 还是别用了吧,如果你是维护旧项目,我觉得还是别动原本的代码比较好。如果一定要嵌入内容,我建议现在还是用对应的 npm 包吧
还有就是 img 其实是可以用 div 设置背景图片的,所以其实我也有点纠结,但是还是把 img 列出来吧。