code标签默认在小屏上会溢出,需显式设置white-space: pre-wrap、overflow-x: auto、max-width: 100%及font-size: 0.85rem;避免与pre嵌套,禁用内联注释,适配暗色模式应使用css变量或color-scheme,并修复嵌套列表中的行高问题。

code标签默认样式在小屏上会溢出
直接用<code>包裹代码片段,不加任何CSS,在手机上大概率出现横向滚动条或文字被截断。浏览器默认只设font-family: monospace,没处理换行、缩放和容器适配。
常见错误现象:margin为0、white-space: nowrap(继承自默认行为)、无max-width约束,导致长命令如npm install --save-dev @types/react@18.2.0直接撑破容器。
- 必须显式加
white-space: pre-wrap或pre-line,允许软换行但保留原始空格与缩进 - 配合
overflow-x: auto和max-width: 100%,避免强制拉伸父容器 - 移动端建议加
font-size: 0.85rem,否则等宽字体在390px视口下显得过大
响应式文档中嵌套code的常见结构陷阱
技术文档常把code放在<pre class="brush:php;toolbar:false;"><code></code>组合里,但<code><pre class="brush:php;toolbar:false;"></pre>自带white-space: pre,会导致小屏下完全不折行——哪怕你给code写了pre-wrap也无效,因为<pre class="brush:php;toolbar:false;"></pre>的样式优先级更高。
使用场景:展示终端命令、配置片段、错误堆栈时,既要保真又要可读。
- 正确写法是只用
<code>,靠CSS控制换行;<pre class="brush:php;toolbar:false;"></pre>仅用于需完整保留所有换行符的原始日志输出 - 若必须用
<pre class="brush:php;toolbar:false;"><code></code>,则重置<code><pre class="brush:php;toolbar:false;"></pre>:加white-space: pre-wrap; word-break: break-word; - 别在
code里塞<span></span>高亮关键词——它会破坏font-family继承,且在窄屏下导致行高错乱
搭配sizes和srcset时,code标签怎么写才不误导读者
技术文档讲响应式图片时,常要展示srcset和sizes属性值。如果直接写成<img src="a.jpg" srcset="a-480.jpg 480w, a-768.jpg 768w">,读者可能误以为这是“运行时自动选图”,而忽略sizes才是决定哪一版生效的关键。
参数差异就在这里:srcset只提供候选资源,sizes才告诉浏览器“这张图在当前布局下占多宽”,两者缺一不可。
- 示例应拆成两行写,用
<code>分别包裹:srcset="photo-480.jpg 480w, photo-768.jpg 768w"和sizes="(max-width: 480px) 100vw, (max-width: 768px) 50vw, 33vw" - 避免在
code块里写注释如// 480w对应小屏——注释不是HTML语法,放进code会误导初学者复制执行 - 若展示
<picture></picture>结构,<source></source>的media属性值必须用code单独标出,比如media="(min-width: 768px)",不能混在整段HTML里
暗色模式下code标签的对比度和可访问性问题
很多文档用background-color: #f1f1f1配深灰文字,看似清爽,但在暗色模式下变成浅灰底+浅灰字,对比度低于WCAG 4.5:1标准,屏幕阅读器用户和弱视者根本看不清。
性能影响不大,但兼容性风险高:Safari 15+、Chrome 100+ 已支持@media (prefers-color-scheme: dark),但旧CSS未适配就会失效。
- 别用固定
color和background-color,改用系统语义色:color: var(--code-fg); background-color: var(--code-bg); - 在
:root里定义两套变量,或直接用CSS color-scheme: light dark触发浏览器自动适配 - 测试时别只看开发者工具的“暗色模式开关”,真机上iOS Safari对
color-scheme的支持仍比Chrome弱,需手动验证
code标签在嵌套列表(比如<ol><li><code>npm run dev)里的行高继承问题——它会沿用li的line-height,导致多行代码上下挤压。这时候光调code的padding没用,得重置line-height: 1.4并确保父li不设overflow: hidden。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











