You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Next.js移除生成HTML段落中的换行符?

解决Next.js 14.1.0中p标签保留文本换行的问题

问题原因

Next.js的JSX编译阶段会自动将文本节点中的连续空白(包括换行、多个空格)合并为单个空格,这是React/Next.js的默认文本处理规则——即便你给p标签加了whitespace-pre-wrap样式,编译后的HTML文本已经丢失了换行信息,CSS自然无法生效。

可行解决方案

1. 使用模板字符串保留换行符

将文本内容用模板字符串包裹,模板字符串会保留内部的换行和空白,再通过whitespace-pre-wrap样式渲染出换行效果:

<p className="whitespace-pre-wrap">
  {`First line text

Third line text`}
</p>

编译后的HTML会保留文本中的\n换行符,whitespace-pre-wrap样式会解析这些换行符为页面上的换行,同时允许长文本自动换行(这是<pre>标签不具备的特性)。

2. 不推荐:使用dangerouslySetInnerHTML

如果必须直接插入带换行的原始文本,可以使用dangerouslySetInnerHTML,但注意这存在XSS风险,仅在内容完全可控时使用:

<p 
  className="whitespace-pre-wrap"
  dangerouslySetInnerHTML={{ __html: 'First line text\n\nThird line text' }}
/>

内容的提问来源于stack exchange,提问作者ttt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 05:32:06