code标签默认font-weight为normal,因用户代理样式表强制设定,旨在保持代码中性语义;加粗需显式覆盖并选用支持多字重的等宽字体,避免破坏字符对齐。

code标签默认font-weight为什么总是normal
code 标签在所有主流浏览器中默认继承 font-weight: normal,即使你给父元素设了 bold,它也不会自动加粗。这不是遗漏,而是用户代理样式表(如 Chrome 的 user-agent.css)里明确写死的规则:code { font-weight: normal; }。它被设计成「中性代码标识」,避免干扰语义——比如 if (x > 0) 加粗后可能被误读为强调,而非代码本身。
- 不能靠父级
strong或font-weight: bold继承生效 - 部分 Markdown 渲染器(如 remark)生成的
code可能套在span里,但依然遵循该默认 - 想加粗必须显式覆盖,且注意权重:某些 UI 库(如 Bootstrap)的
code规则 specificity 更高,直接写code { font-weight: 600; }可能不生效
如何安全地让code变粗又不破坏等宽特性
加粗的关键是选对字体——不是所有等宽字体都支持 font-weight: bold 或数值字重(如 700)。比如 Windows 上的 Courier New 基本只有 regular 和 bold 两档,而 Consolas 和 SFMono-Regular 支持更细粒度的字重映射。
- 优先使用支持多字重的现代等宽字体:在
font-family栈中把"Fira Code"、"JetBrains Mono"或"SFMono-Regular"放前面 - 显式声明
font-weight: 600(比bold更可控,避免 fallback 到系统粗体) - 禁用
font-style: italic:等宽字体斜体常是算法倾斜(oblique),会破坏字符对齐,尤其在表格或对齐代码块中 - 示例:
code { font-family: "Fira Code", "SFMono-Regular", Consolas, monospace; font-weight: 600; font-style: normal; }
font-style: italic 在code里到底能不能用
可以,但极不推荐。浏览器对等宽字体施加 font-style: italic 时,绝大多数不会调用真实斜体字形(italic glyphs),而是做几何倾斜(oblique),导致字符宽度微变、光标定位偏移、语法高亮错位——尤其在 pre > code 块中,一行内混用斜体和正体时,空格对齐会肉眼可见地崩掉。
- 真实斜体等宽字体极少(如
"IBM Plex Mono Italic"),需手动引入@font-face - 若真需区分(如注释用斜体),建议用 class 区分:
<code class="comment">// this,再单独控制样式 - 绝对不要对整个
code全局设font-style: italic,哪怕只是临时调试
为什么改了font-weight,code还是看起来“不够黑”
常见原因是字体渲染引擎限制:Windows 的 GDI 渲染下,Consolas 等字体即使设 font-weight: 900,视觉加粗程度也远不如 macOS 的 Core Text。更隐蔽的问题是抗锯齿与 subpixel rendering 差异——同一 font-weight 值,在不同系统上实际描边像素数不同。
- 别迷信数值:从
400直跳到700不一定比600更有效;先试500~600找平衡点 - 配合
text-shadow微调(慎用):text-shadow: 0 0 1px rgba(0,0,0,.2);能增强边缘对比,但会轻微模糊 - 真正可靠的方式是换字体:Fira Code、JetBrains Mono、Recursive 都专为编程加粗优化过字形
- 检查 DevTools 的「Computed」面板,确认最终生效的
font-weight是你设的值,而非被 reset 成normal
pre > code 里的缩进、对齐、制表符就会全线失守。所以每次调 font-weight,都要拿带空格和缩进的真实代码片段去测。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











