CSS-彻底搞懂 HTML 中那些“双胞胎”标签的区别

39 阅读3分钟

前言

在前端开发中,很多标签渲染出来的视觉效果是一样的。比如 <b><strong> 都是加粗,<i><em> 都是倾斜。既然样子一样,为什么还要分两个?这就涉及到了 HTML 语义化SEO(搜索引擎优化)

一、 Title vs H1:谁才是真正的标题?

虽然它们都叫“标题”,但分工完全不同。

维度titleh1
显示位置浏览器标签栏(Tab)、收藏夹、搜索结果标题网页的正文内容区
核心作用概括整个网页的主题,对搜索引擎(SEO)极度重要概括当前文章/版块的主题
数量建议每个页面必须有且仅有一个建议每个页面仅设一个(利于搜索引擎抓取权重)

SEO 权重: title > h1。搜索引擎抓取网页时,首先看 title 确定你这个页面是干嘛的,再看 h1 确认内容。


二、 <b> vs <strong>:加粗不仅是加粗

  • <b> (Bold)

    • 实体标签。属于 UI 范畴,纯粹是告诉浏览器:“把这几个字加粗”。
    • 语义:无。
  • <strong> (Strong Importance)

    • 逻辑标签。告诉浏览器和搜索引擎:“这部分内容非常重要”。
    • 无障碍:盲人使用的屏幕阅读器在读到 <strong> 时,会加重语气,而读到 <b> 则不会。

最佳实践: 为了符合 Web 标准和 SEO 优化,除非你只是想纯视觉美化,否则一律推荐使用 <strong>


三、 <i> vs <em>:倾斜背后的语义

  • <i> (Italic)

    • 实体标签。仅将文字倾斜。
    • 现代用法:现在 <i> 更多地被赋予了新的使命——作为字体图标Icon的容器
  • <em> (Emphasis)

    • 逻辑标签。表示局部的强调,通常在读这段话时,这里的重音会不同。

对比总结:

  • <i>:纯视觉倾斜,常用于技术术语、外语词汇或图标。
  • <em>:带有强调语义的倾斜。

四、 核心总结:语义化的重要性

为什么我们要费劲分清这些?

  1. SEO 友好:搜索引擎蜘蛛(Spider)是看不见样式的,它只能通过标签语义来判断内容的权重。使用 <strong>em 能帮助你的网页在搜索结果中排名更高。
  2. 无障碍(Accessibility) :让残障人士在使用屏幕阅读器时,能听出你文章的轻重缓急。
  3. 代码可维护性:语义清晰的代码,就像写得好的文章,一眼就能看出逻辑结构。

五、 面试模拟题

Q1:HTML 语义化标签有哪些好处?

参考回答:

  1. 对人友好:代码结构清晰,易于阅读和维护。
  2. 对机器友好:利于 SEO,让搜索引擎爬虫更好地理解内容;利于屏幕阅读器解析,提升无障碍体验。
  3. 兼容性:即便 CSS 没加载出来,页面也能保持基本的逻辑结构。

Q2:如果在页面中多次使用 <h1> 会怎么样?

参考回答:

虽然 HTML5 规范不再严格限制h1的数量,但从 SEO 角度来看,一个页面只有一个h1能够集中网页权重。如果出现多个,会分散搜索引擎对核心主题的判断,建议其他的标题使用h2 ~ h6。

Q3:如何用 CSS 实现 <strong> 的效果?

参考回答:

使用 font-weight: bold;。但要注意,CSS 只能实现视觉上的“加粗”,无法提供 HTML 标签所携带的语义权重。