code标签仅语义化不自动美化,需css手动设置字体、背景、内边距等样式;单行用code,多行须pre+code组合并转义特殊字符。

code 标签默认只语义化,不自动美化
浏览器对 code 标签仅应用基础等宽字体(font-family: monospace),没有背景、内边距或颜色区分。直接写 <code>console.log() 在页面上几乎看不出和普通文字的区别。
常见错误是以为加了 code 就“自动高亮”——其实它只是告诉浏览器“这是代码”,样式仍需你手动定义。
- 必须用 CSS 显式设置
background-color、padding、border-radius等才能形成视觉区块 - 不要依赖浏览器默认样式做可读性设计
- 若混用
pre+code,注意pre会保留换行与空格,而单独code不会
给 code 标签加基础样式最简写法
在 中用 <style></style> 定义即可生效,无需 JS 或外部库:
code {
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
background-color: #f6f8fa;
padding: 2px 4px;
border-radius: 3px;
color: #24292e;
font-size: 0.95em;
}
这段 CSS 的关键点:
-
font-family列出多个等宽字体,兼顾 macOS / Windows / Linux 兼容性 -
padding必须设,否则文字紧贴边界,视觉拥挤 -
border-radius小于 4px 更自然,太大反而像按钮 - 避免用纯黑(
#000)或纯白(#fff)文字,对比过强易疲劳
pre + code 组合才是完整代码块方案
单行代码用 code,多行或带缩进的代码必须套一层 pre,否则空格和换行会被 HTML 合并丢弃:
<pre class="brush:php;toolbar:false;"><code class="js">function hello() {
return "world";
}</code>
此时 CSS 需同步处理父容器:
pre {
background-color: #282a36;
color: #f8f8f2;
padding: 1rem;
overflow-x: auto;
line-height: 1.4;
}
pre code {
font-family: 'Fira Code', monospace;
background: none;
padding: 0;
color: inherit;
}
容易踩的坑:
-
pre默认无滚动,长代码会撑宽页面 → 必须加overflow-x: auto -
pre code的font-family应继承自pre,避免重复声明导致字体冲突 - 不要给
pre设固定width,响应式场景下应靠max-width+margin控制宽度
特殊字符必须转义,否则破坏结构
如果 code 内容含 、<code>>、&,不转义会直接被浏览器解析为标签或实体,导致显示错乱甚至 XSS 风险:
❌ 错误写法:<code><div class="box"></div> → 浏览器尝试渲染 div 标签
✅ 正确写法:<code><div class="box"></div>
转义规则只需记三个:
→ <code><-
>→> -
&→&
服务端渲染或静态站点生成器(如 Hugo、Jekyll)通常自带转义,但手写 HTML 时务必人工检查 —— 这是最常被忽略、调试成本最高的环节。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











