应使用 而非 标注函数名、变量或命令等短文本,因其为行内元素,不换行、不保留空格缩进,嵌入句子自然; 会打断段落流、样式难对齐且易被误读为独立代码块;含 等需转义,如 if (x
什么时候该用
当你在段落里提一个函数名、变量或命令时,
fetch()、os.path.join()、npm install这类短文本才是它的本职工作。它默认是行内元素,不换行、不保留空格缩进,嵌在句子中刚好自然;换成<pre class="brush:php;toolbar:false;"> 会打断段落流,样式难对齐,还可能被屏幕阅读器误读为独立代码块。
- 含
或>必须转义:写if (x ,不能写if (x (否则浏览器解析成标签)- 别指望它自动等宽:虽然多数浏览器默认用
Courier类字体,但没声明font-family: monospace时,某些系统可能 fallback 到非等宽字体- 长代码塞进去会塌成一行:
function foo() { return true; }渲染后所有换行和缩进全丢,语义也错位——屏幕阅读器把它当一个“变量名”读,不是可执行逻辑
<pre class="brush:php;toolbar:false;"> 组合为什么不能省略 <pre class="brush:php;toolbar:false;">
标签只管“这是代码”,不管“怎么排版”;多行代码格式全毁;单用 缺少语义,搜索引擎和辅助技术无法识别内容类型。
overflow-x: auto- tab 缩进显示不一致?用
tab-size: 2控制(注意仅在支持该属性的浏览器生效)- 里面写 HTML 字符必须全部转义:
,漏掉任何一个&、、>都可能导致 DOM 结构断裂常见错误:把
当样式容器用很多人给
加背景色、边框、font-family,以为能当“迷你代码块”用。问题在于:不阻止文字折行,长标识符(比如userProfileDataResponseHandler)可能在单词中间断开;它也不强制等宽字体,没显式设置就依赖浏览器默认,移动端尤其不可靠。
- 真要控制换行行为,得靠
white-space: nowrap或pre-wrap,但这些对效果有限,且破坏行内语义- 语法高亮?
标签本身不做任何高亮,必须配合 Prism.js 或 Highlight.js,且高亮脚本仍应作用于内部节点- 想加点击复制功能?事件监听器要绑在
外层容器上,而不是 自身——它只是语义标记,不是交互载体嵌套
在 或 里是否合理可以,但需严格对应语义:
username 表示变量占位符,Ctrl+C表示用户输入,404 Not Found表示程序输出。如果把fetch()塞进 里,就混淆了“调用动作”和“键盘操作”两个概念。
合理:变量名本身是代码, 描述其角色API_KEY错误:命令整体是用户输入,git commit -m标签应只包裹其中的代码成分,比如git commit -m"init"- 辅助技术依赖这套语义链,乱嵌套会让读屏软件读错上下文
实际写的时候,最常被忽略的是
和解决“义”。混用、省略或强行扩展,都会让代码片段在视觉、语义、可访问性三个层面同时出问题。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!












