伪元素中用\A实现换行需配合white-space:pre-wrap等属性,且建议设display:block/inline-block;复杂换行应改用真实HTML元素。
伪元素(如 ::before 和 ::after)的 content 属性本身不直接支持换行,但可以通过组合 white-space 和特殊换行符实现换行效果。
在 content 值中插入转义序列 \A 表示一个换行符,但必须配合 white-space: pre 或 pre-wrap 才能生效:
\A 是 CSS 中表示“换行”的 Unicode 转义(U+000A),不是普通回车或 \n
\A 不起作用,必须设置 white-space 以保留该换行符white-space: pre-wrap:既保留 \A 换行,又允许内容在容器边界正常折行示例:
.box::before {
content: '第一行\A第二行';
white-space: pre-wrap;
display: inline-block;
}
white-space 决定了伪元素生成文本中的空格、制表符和换行符是否被保留,以及是否自动折行:
normal:忽略所有换行符和多余空格,\A 无效nowrap:保留空格但忽略换行,\A 显示为空格,不换行pre:保留 \A 并换行,但不自动折行 —— 超宽内容会溢出pre-wrap:最常用;保留 \A 换行,同时允许长文本在容器边缘自动折行伪元素默认是内联级,若需稳定换行表现,建议显式设置显示类型:
display: block 或 inline-block,避免换行被父容器内联流干扰width,否则 pre-wrap 的自动折行可能不明显content 中混用 HTML 实体(如
)—— 它们不会被解析为换行,只当普通字符如果换行逻辑复杂(比如动态多行、响应式断点控制),伪元素就不太适合。此时建议:
或 )承载多行文本
- 用
white-space: pre-line 处理含自然换行符的内容(如服务端注入的带 \n 的字符串)
- 结合
word-break 或 overflow-wrap 应对超长无空格字符串(如 URL)