应优先使用语义化标签:表重要性、表强调,而非;准确表达删除,优于

<strong></strong> 和 <em></em> 应该优先于 <b></b> 与 <i></i>;<del></del> 比 <s></s> 更准确表达删除语义;<pre class="brush:php;toolbar:false;"></pre> 是唯一能原样保留换行与空格的标签——这些不是风格偏好,而是 HTML5 规范明确推荐的语义实践。
什么时候该用 <strong></strong> 而不是 <b></b>
加粗只是视觉效果,<strong></strong> 表达的是内容重要性,浏览器和读屏器会据此调整行为(比如提高音量或语速);<b></b> 仅用于“不带额外语义的突出显示”,比如关键词、产品名、船名等。
- 用户登录失败提示:“
<strong>密码错误</strong>,请重试” → 正确:强调操作关键点
- 文章中提及品牌:“苹果公司发布新款
<b>iPhone</b>” → 合理:不改变语义,仅视觉提亮 - 避免写
<b>警告:系统即将重启</b>,应改用 <code><strong></strong>或配合<div role="alert"> <h3> <code><pre class="brush:php;toolbar:false;"></pre>的真实作用和常见误用<pre class="brush:php;toolbar:false;"></pre>不是“让文字变等宽”的标签,它的核心能力是**保留原始空白符(空格、制表符、换行)**。浏览器默认对普通文本连续空格只渲染一个,而<pre class="brush:php;toolbar:false;"></pre>会原样输出。- 适合场景:代码块、日志片段、ASCII 图、缩进式配置(如 YAML/INI 片段)
- 不推荐直接放大段中文说明文字——它会强制使用等宽字体,可读性反而下降
- 若需高亮代码又保留格式,应嵌套
<code>:<pre class="brush:php;toolbar:false;"><code>console.log("hello");</code></pre> - 注意:
<pre class="brush:php;toolbar:false;"></pre>内容不会自动转义和 <code>&,若含 HTML 字符,必须手动替换为<和&
<ins></ins>和<del></del>的语义边界在哪它们不是样式工具,而是文档修订标记。浏览器默认用下划线 / 删除线呈现,但真正价值在于传递“这是新增”或“这是已废弃”的意图。
-
<del datetime="2026-09-15">¥199</del><ins>¥149</ins>→ 含时间戳,可用于审计或版本比对 - 不要用
<del></del>做“划掉促销价”这种纯视觉营销,那属于 CSS 职责;应搭配<time></time>或 microdata 提升结构化数据质量 -
<s></s>仅适用于“不再准确但也不过时”的内容(如已停售型号、旧版 API),语义弱于<del></del> - 搜索引擎可能忽略
<del></del>内容的索引权重,所以别在里面塞关键词
最容易被忽略的是:所有这些标签都依赖上下文语义成立。单独写一个
<strong></strong>没问题,但连续三个<strong></strong>就会让重要性失效;<pre class="brush:php;toolbar:false;"></pre>里混入未转义的<script></script>可能导致执行或解析错误;<ins></ins>若没配datetime,对自动化处理几乎无用。语义不是装饰,是契约。











