为什么直接在<p>元素之后的换行添加单个空格?

时间:2019-04-09 18:49:46

标签: html css google-chrome

一个同事在我完成的屏幕上出现文本对齐问题。在使用Chrome的Win10 PC上向我显示了该问题,并且出现了如下几行文字:

Text line 1.
 Text line 2 is much longer and wraps to two lines, but the second line
does not have the whitespace added.
 Text line 3 does not wrap, and has the same alignment issue.

当我在Mac上使用Chrome浏览器查看该问题时,没有看到此问题,因此我巧妙地推断出它很可能是带有某些引导程序类的Win-Chrome错误。

但是,深入研究后,问题最终变成了<p>标签内容的格式:

<p>Text line 1.</p>
<p>
    Text line 2 is much longer and wraps to two lines, but the second line does not have the whitespace added.
</p>
<p>
    Text line 3 does not wrap, and has the whitespace.
</p>

我知道字符串中间的换行符会在大多数浏览器中推断出一个空格(谢天谢地),因此在编写多行内容时不必添加尾随/前导空格。但是,我从未见过初始返回会导致空白。

重点是,可能会有很多这样格式化的代码,并且客户端将在Win10中测试对齐问题。 为什么会发生这种情况,最有可能是Win / Chrome错误?是某些浏览器开发人员的明智选择吗?

参考文献将不胜感激,但是我个人找不到与SO,CSS-Tricks或Chrome浏览器文档相关的任何内容。

编辑: 另一位同事证实,在<br />标记内添加<p>(没有尾随/前导空格)也会在之后直接生成单个前导空白。

1 个答案:

答案 0 :(得分:1)

white-space: pre-wrap保留空格,因此在自动换行时,由于它位于段落的开头,因此不会添加额外的空间。
如果您希望整个段落即使在自动换行后也要有额外的空间,请尝试white-space: none;或添加一些填充/边距。