<code>标签仅用于内联短代码片段,如函数名或命令;多行代码须用<pre><code>组合;需显式设置等宽字体与基础样式,且不自带语法高亮。

<code> 标签不是用来高亮代码块的装饰品,它只表示「一段计算机可执行的、短小的、内联的代码片段」——比如函数名、变量名、命令或配置项。在个人博客里滥用它(例如包裹整段 Python 脚本),反而会让语义混乱、屏幕阅读器误读、SEO 降权。
什么时候该用 <code>,而不是 <pre> 或 <div>
核心判断标准:是否嵌入在自然段落中、长度是否控制在一行以内、是否需要被读屏软件识别为「代码」而非普通文本。
-
<code>适合:console.log()、git clone、package.json、margin: 0 auto -
<pre><code>组合才适合:多行代码块,如 JS 函数体、HTML 片段、终端输出 - 纯样式容器(如
<div class="code-block">)没有语义,搜索引擎和辅助技术无法识别其内容性质
<code> 必须配合的 CSS 基础样式
浏览器默认对 <code> 应用 font-family: monospace 和轻微缩放,但极易被全局 CSS 覆盖(比如重置了所有 font-family)。不加显式声明,它可能看起来和普通文字一模一样。
- 至少设置:
code { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; } - 建议加上:
code { background-color: #f6f6f6; padding: 2px 4px; border-radius: 3px; } - 避免用
font-size: 100%—— 它会继承父级字号,导致嵌套时大小失控;改用font-size: 0.95em更稳
常见错误:把 <code> 当成语法高亮开关
仅靠 <code> 标签本身,不会触发任何语法高亮。所谓「高亮」是 CSS 或 JS 库(如 Prism、highlight.js)基于 class 名(如 language-js)做的样式注入。直接写 <code>function foo() {</code> 不会变色,也不会加括号匹配。
立即学习“前端免费学习笔记(深入)”;
- 正确做法:多行代码用
<pre><code class="js">.../pre>,再引入对应高亮库 - 错误做法:给每个
<code>都手动加class="js"—— 这违反语义,且无法被自动化工具识别 - 特别注意:
<code>内不能包含 HTML 实体以外的标签,<code><div>alert()</div></code>是非法嵌套,会破坏 DOM 结构
最常被忽略的一点:博客里所有路径、配置文件名、命令、函数调用,只要出现在正文中,就该用 <code> 包裹——不是为了好看,是为了让这段文本在语义层被明确标记为「可执行内容」。这直接影响可访问性与结构化数据提取效果。



















