应优先用表达语义重要性,如警告、必填项;仅用于纯视觉加粗。表语音强调,表术语等惯例斜体。嵌套限于行内元素,css可改样式但不改语义。

什么时候该用 <strong></strong> 而不是 <b></b>
关键看是否需要传递「重要性」语义:<strong></strong> 是给机器和辅助技术看的,比如屏幕阅读器会加重语气读出,搜索引擎也会提升其权重;<b></b> 只是视觉加粗,没这层含义。
常见误用场景包括:标题里品牌名加粗、菜单项文字加粗、纯排版需要的粗体——这些都该用 <b></b> 或 CSS 的 font-weight。而以下内容才适合 <strong></strong>:
-
<strong></strong>此操作将删除全部数据 - 请确保
<strong>API_KEY</strong>未泄露 - 必填字段:
<strong>邮箱</strong>
<em></em> 和 <i></i> 的区别不是“斜不斜”,而是“强不强调”
<em></em> 表示语音重音或逻辑强调,比如“<em>不是</em>所有浏览器都支持该属性”中,“不是”被刻意强调以改变句意;<i></i> 则用于术语、外文词、船名等惯例性斜体,比如 <i>Homo sapiens</i>、<i>The Great Gatsby</i>。
一个容易踩的坑:把“注意”“警告”这类提示用 <em></em> 包裹。这是错的——它们表达的是重要性,不是语气起伏,应优先用 <strong></strong>。
嵌套使用时的合法边界和推荐组合
<strong></strong> 和 <em></em> 都是行内元素,不能包裹 <p></p>、<div> 等块级标签,否则 HTML 结构非法(即使浏览器自动修复,可访问性和校验仍会出问题)。
<p>但它们可以安全嵌套其他行内标签,尤其推荐以下组合:</p>
<ul>
<li>
<code><strong></strong>错误码 <code>403(强调 + 代码语义)
<em></em>你真的确定要 <strong></strong>继续吗(语气+重要性叠加,需谨慎,避免过度)<strong><mark></mark></strong>敏感信息(强调+高亮,适用于监管类页面)CSS 覆盖后,<strong></strong> 还算“强调”吗
算。样式可以完全改写:strong { font-weight: normal; color: red; text-decoration: underline; },但它的语义不变——屏幕阅读器仍会加重读、搜索引擎仍视作高权重文本、DOM 中仍是 <strong></strong> 元素。
真正危险的是滥用:<strong></strong> 段落开头<strong></strong>中间关键词<strong></strong>结尾总结。这样等于没有强调,反而稀释了关键信息。它应该像紧急警报,响一次就足够。











