HTML 中带有“\n”的换行符

Line break in HTML with '\n'

提问人:stkvtflw 提问时间:9/5/2016 最后编辑:Penny Liustkvtflw 更新时间:7/19/2023 访问量:1407841

问:

有没有办法让 HTML 正确处理换行符?还是我必须用 ?\n<br/>

<div class="text">
  abc
  def
  ghi
</div>

HTML CSS 换行符

评论


答:

38赞 Johan Brännmar 9/5/2016 #1

您可以使用标签<pre>

<div class="text">
<pre>
  abc
  def
  ghi
</pre>
  abc
  def
  ghi
</div>

22赞 Ehsan 9/5/2016 #2

您可以使用标签:<pre>

<div class="text">
<pre>
abc
def
ghi
</pre>
</div>

933赞 khakishoiab 9/5/2016 #3

这是为了在 HTML 中显示换行符和回车符。这样你就不需要显式地这样做了。您可以在 CSS 中通过设置 white-space 属性 pre-line 值来执行此操作。

<span style="white-space: pre-line">@Model.CommentText</span>

评论

76赞 Vijay Shegokar 6/11/2019
如果还想保留选项卡空间,您也可以使用。white-space: pre-wrap
1赞 Abdul Rahman K 6/17/2023
很好的答案!答案的问题是块呈现得像代码块一样<pre>
1赞 JKL 9/13/2023
我可能遗漏了一些东西,但这似乎不起作用。<span style="white-space: pre-line">Does this work? \n No</span>
0赞 Paul Lynch 11/18/2023
@JKL 你不能把 \n 放在那里;它必须是实际的换行符。
101赞 Sampad 9/5/2016 #4

它可以通过多种方式完成。

例如,如果要在文本区域中插入新行,可以使用以下命令:

&#10;换行和回车,使用方式如下:&#13;

<textarea>Hello &#10;&#13;Stackoverflow</textarea>

您还可以使用预先格式化的文本,如下所示:<pre>---</pre>

<pre>
  This is line 1
  This is line 2
  This is line 3
</pre>

或者,您可以使用如下段落标签:<p>----</p>

<p>This is line 1</p>
<p>This is line 2</p>
<p>This is line 3</p>

评论

7赞 Shadow 7/19/2017
你能详细说明一下你的最后一点吗?我不明白为什么你认为这需要服务器端支持......
3赞 John Montgomery 5/13/2020
正如其他几个答案所表明的那样,这里的最后一句话客观上是错误的。即使它本身不受支持,您也可以使用客户端 JavaScript 轻松更改它。
360赞 Darlesson 7/19/2017 #5

您可以将 CSS 属性用于 。您也可以保留选项卡,如 中所示。white-space\n\t

换行符 :\n

white-space: pre-line;

对于换行符和制表符:\n\t

white-space: pre-wrap;

document.getElementById('just-line-break').innerHTML = 'Testing 1\nTesting 2\n\tNo tab';

document.getElementById('line-break-and-tab').innerHTML = 'Testing 1\nTesting 2\n\tWith tab';
#just-line-break {
  white-space: pre-line;
}

#line-break-and-tab {
  white-space: pre-wrap;
}
<div id="just-line-break"></div>

<br/>

<div id="line-break-and-tab"></div>

评论

7赞 Darlesson 6/22/2018
这在很长一段时间内都可用,并且所有主要浏览器都支持它。
12赞 Alessandro Ornano 8/30/2018 #6

简单而线性:

 <p> my phrase is this..<br>
 the other line is this<br>
 the end is this other phrase..
 </p>

评论

0赞 Diego Lope Loyola 12/4/2021
<br> HTML 元素在文本中生成换行符(回车)。它对于写一首诗或一个地址很有用,其中行的划分很重要。这更容易。developer.mozilla.org/en-US/docs/Web/HTML/Element/br
0赞 Alessandro Ornano 12/4/2021
@DiegoLopeLoyola我同意你的看法,但不幸的是,有时某些编译器或编程语言只接受这个 HTML 标签。
29赞 Drenai 12/13/2018 #7

使用允许您直接在带有换行符的 HTML 中输入文本,而无需使用white-space: pre-line\n

如果您通过 JavaScript 在非 pre 元素(例如 a )上使用元素的 innerText 属性,则默认情况下,这些值将在 DOM 中替换为<div>\n<br>

  • innerText:替换为\n<br>
  • innerHTML,:需要使用样式textContentwhite-space

这取决于您如何应用文本,但有许多选项

const node = document.createElement('div');
node.innerText = '\n Test \n One '

评论

1赞 Trade-Ideas Philip 8/15/2021
有趣。我不小心碰到了这个。是否有任何文档对此进行描述?
1赞 Drenai 8/16/2021
这里有许多不同的概念,并且行为依赖于浏览器 - 因此不太可能将其描述为单个文档。我很少使用,但经常使用样式brinnerTextwhite-space
3赞 Yin Cognyto 5/14/2022 #8

一个不涉及 CSS 样式或数字字符引用的简单且更自然的解决方案是使用字符实体引用:&#13;&#10;&NewLine;

The primary colors are:&NewLine;- Red&NewLine;- Green&NewLine;- Blue

注意:由于这被简单地定义为LF(换行符,或Unicode码位)字符,因此它是否适合需要整个CR + LF(回车符+换行符)序列的场景是值得商榷的。但是,它在我在 Windows 10 中完成的 Chrome、Edge 和 WebView2 测试中起作用,因此它应该可以安全使用。U+000A

评论

0赞 HelloWorldPeace 10/11/2022
这有效,但需要 CSS 。两者协同工作得很好,因为某些代码格式化程序会删除空格。white-space: pre-line;
0赞 Peter Mortensen 2/14/2023
的目的是什么?字面?以某种方式渲染?不可打印的 ASCII 字符的某种编码?你能详细说明一下吗?&NewLine;
1赞 Yin Cognyto 2/15/2023
@PeterMortensen 它只是换行符的字符实体引用,类似于接受的答案是 XML / HTML 中的数字(十进制)实体引用。它们是 HTML 规范中定义的字符的标准文本或数字表示形式,可用于几乎所有 Unicode 字符,无论它们是否可打印。它不是专门渲染的,它只是在 HTML 中表示这种“实体”的三种方式(文字、数字、文本)之一。&#10;
11赞 Ajay Sivan 5/20/2022 #9

您可以使用以下任何 CSS,

white-space: pre-line;

white-space: pre-wrap;

white-space: break-spaces;

欲了解更多信息,请阅读: https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

23赞 Ashadi Sedana Pratama 11/30/2022 #10

您可以使用以下 CSS 属性:

white-space: pre-line

评论

0赞 edwardsmarkf 10/3/2023
谢谢!-- 已经看了几天了 - 效果很好。
1赞 Tireuuuuu 5/11/2023 #11

\n或 或 在内部解释\t\r<pre>---</pre>

它对我有用。