应使用而非:前者表达内容逻辑重要性(如警告、关键数据),后者仅实现纯视觉加粗;两者渲染效果相同但语义迥异,影响屏幕阅读器朗读、搜索引擎权重及无障碍访问。

strong 是语义标签,b 是表现标签
浏览器默认都把两者渲染成粗体,但这是巧合,不是等价。strong 表达的是“这段文字在内容逻辑上更重要”,比如关键词、警告信息、法律条款中的责任主体;b 表达的是“这段文字需要视觉上被注意”,比如产品名、人名、术语缩写——它不暗示重要性,只负责加粗这个动作。
常见错误现象:<b>警告:系统即将重启</b> —— 这里用 b 就弱化了语义强度;屏幕阅读器不会重读,搜索引擎也不会赋予额外权重。换成 <strong>警告:系统即将重启</strong> 才符合意图。
- 使用场景判断口诀:想说“这句很关键” → 用
strong;只想说“这里要加粗” → 用b - CSS 可以覆盖两者默认样式,但改不了语义:哪怕你用 CSS 把
strong设成红色斜体,它仍是语义上的“强调” - 无障碍访问中,
strong会被屏幕阅读器加重、停顿,b则完全按普通文本朗读
SEO 和可访问性对 strong 的实际影响
搜索引擎爬虫会识别 strong 包裹的文本为页面重点内容,尤其在标题、摘要、列表项中出现时,可能提升该词在相关查询中的曝光权重;而 b 不触发任何语义信号,纯属装饰。
容易踩的坑:strong 不是 SEO 魔法棒。滥用(比如整段落都套 strong)会被视为操纵信号,反而稀释重点;同时,仅靠 CSS 类名(如 <span class="highlight">...</span>)模拟加粗效果,无法替代 strong 的语义价值——爬虫和读屏器看不到 class 名。
- 推荐做法:在摘要首句、小标题、操作按钮文案、风险提示中谨慎嵌入
strong - 性能无差异:两者解析开销一致,不影响渲染速度
- 兼容性无顾虑:所有现代浏览器及旧版 IE 都支持
strong,无需 polyfill
b 标签没被淘汰,但使用场景非常具体
W3C 规范明确保留了 b,并定义其用途为“无语义加粗”,典型例子包括:文章作者名、生物拉丁学名、电影标题、代码标识符(如 <b>document.getElementById</b>)——这些不需要传达“重要性”,只需区别于正文的视觉层级。
真实错误示例:<p>请务必阅读 <b>用户协议</b> 中的第 7 条</p> —— “用户协议”本身是文档名,用 b 合理;但“第 7 条”涉及法律责任,应改为 <strong>第 7 条</strong>。
- 不要用
b替代 CSS:为了一致加粗效果,优先写font-weight: bold;只有需明确标注“此处仅加粗、无强调”时才用b - 与
i/em的关系类似:i表示“斜体呈现”,em表示“语气强调” - Markdown 渲染器常把 **** 转成
strong,这是合理默认,但要注意源内容是否真有强调意图
如何快速判断该用哪个
遇到不确定时,问自己两个问题:这段文字如果去掉粗体,会影响理解或行为决策吗? 如果答案是“会”,大概率该用 strong;这段文字只是需要和周围区分开,比如标出专有名词或引用格式? 那 b 更贴切。
最易被忽略的一点:语义标签一旦写进 HTML,就固化了结构含义;CSS 可以随时改样式,但不能给 b 注入语义,也不能让 strong 失去语义。所以选错标签,后期靠样式补救不了可访问性和 SEO 损失。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











