标签不转义HTML字符会导致解析执行,需手动实体编码或用textContent;单独使用不换行,须与组合并加class="js"等标识;长代码需CSS设置white-space: pre-wrap; overflow-x: auto;。

pre 标签里直接写代码会乱码吗
不会乱码,但会丢格式、混标签、吃空格—— 正确做法是把尖括号、& 符号这些手动转义: 不能。 所以单用 靠 别写成 会,而且默认不折行、不滚动——这是 解决就一行 CSS:
事情说清了就结束 只负责保留换行和空格,不负责转义 HTML 字符。比如你写 ,浏览器真会去解析那个 、>、&。或者更省事:用 JavaScript 动态插入时调用 textContent 而非 innerHTML;服务端输出前做 HTML 实体编码。
<script>alert(1)</script> 直接塞进 ,结果弹窗了replace()
code 标签单独用能换行吗
是行内元素,连续的换行符、多个空格全被压缩成一个空格,跟普通文字一样“挤在一起”。它只语义化“这是段代码”,不提供排版能力。 只适合短标识符:console.log、useState、__proto__ 这类。想显示多行结构(比如函数、CSS 规则),必须套一层 或用 CSS 强制换行(不推荐)。
是无效嵌套,HTML 解析器会自动修正
<code></code> 是标准组合,语义清晰;<code><code><pre class="brush:php;toolbar:false;">
的默认字号/行高支持较弱<code class="js">...</code> 却忘了给 <code>.js</code> 加语法高亮逻辑,结果只是个灰扑扑的等宽块
pre + code 组合后怎么加语言标识
class 属性,不是 language 或自定义属性。主流高亮库(Prism、highlight.js)都认 class="js"、class="python" 这种格式。class="js" 或 data-lang="js"——前者太模糊(可能被其他样式污染),后者 highlight.js 默认根本不读。
<code class="js"></code>
class="javascript",但 Prism 没反应——因为 Prism 要求严格匹配 language-javascript 或别名 lang-js
pre 里的代码太长会撑破容器吗
的原始行为。用户得横向拖拽,体验极差。pre { white-space: pre-wrap; overflow-x: auto; }。前者让长行自动换行(保留原有缩进逻辑),后者加横向滚动条兜底(当内容实在太宽时)。
white-space: pre-wrap 渲染开销极小;overflow-x: auto 在内容不溢出时不触发滚动条,无额外成本word-break: break-all —— 它会在任意字符中断行(包括变量名中间),破坏可读性tab-size: 4 控制缩进宽度,避免不同编辑器 tab 显示不一致
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











