在处理我的项目时,我发现html源代码中的\n
在浏览器中显示为这两行之间的空格。例如,
a
b
浏览器中的显示为a b
。如何在不删除换行符的情况下避免使用此“空格”?我想要的结果是ab
彼此相邻 - 不是在单独的行上,而是在它们之间有空格。
我使用php生成相当大的表单,为了便于阅读,我使用PHP_EOL
与\n
相同,但在浏览器中显示额外的空格。我想摆脱它们。
答案 0 :(得分:4)
更新回答:
在下面的评论中,您已经说过,您正在寻找的结果是彼此相邻的“ab”,它们之间没有任何空格或换行符。
如果“a”和“b”真的是 text ,我认为你没有任何选择,如果你想让它们彼此相邻,你必须删除它。 (我意识到你说你不想这样做,我只是说,我认为你没有选择。)
如果“a”和“b”是元素(你说你输出了一个大的形式),你可以玩具有负CSS边缘的游戏,但它会变得很难看。或者移动该行的旧技巧会破坏标记,例如:
<input name="a" type="text"
><input name="b" type="text"
>
标签内的换行符不会显示(因为它位于标签中,而不是文本中)。
inter-element whitespace下面的链接也可能有所帮助,具体取决于您的整体加价;基本上有时候浏览器会忽略元素之间的空白,所以你可以稍微调整一下以使它做到这一点。
你说你用它是为了便于阅读。我想另一种选择,虽然它真的详细,但是将换行符放在注释中:
form field here<!--
-->next form field here<!--
-->next form field here
......但又一次,相当冗长(可能在可读性方面做得不多)。
你最好的选择是你说你不想要的:删除换行符。 : - )
原始回答:
(从不清楚你想要“ab”的时候,彼此相邻;几乎每个人都认为你想要突破显示。) < / p>
为什么在使用源代码'\ n'时,浏览器中会显示空格?
因为HTML标准说所有空格字符序列(inter-element whitespace除外)都被视为单个空格。因此对于HTML,换行符,空格,制表符,回车符和换页符都完全相同:它们显示为空格。
如何在不删除换行符的情况下避免使用此“空格”?
有几种方法:
您可以使用br
element:
a<br>b
您可以将a
和b
放在使用块显示的单独的容器中(默认情况下,p
和div
都可以,您可以使用CSS将display: block
应用于其他人。)
<p>a</p>
<p>b</p>
或
<div>a</div>
<div>b</div>
等
如果您确实希望将换行符视为换行符,则可以使用pre
元素,该元素具有对预格式化文本的特殊处理
<pre>a
b</pre>
...您可以使用CSS white-space
style(值pre
,pre-wrap
和pre-line
)将相同类型的处理应用于其他元素。
答案 1 :(得分:0)
使用html中的空格使用</br>
而不是\ n。
\ n在代码中用于换行。
答案 2 :(得分:0)
\ n可能不是新行“显示”所需的唯一字符。
取决于平台\ n可能只为代码或代码和视觉输出提供换行符。某些平台需要\ r才能获得可视回车。在某些情况下,您甚至可能需要\ r \ n才能获得所需的输出。
进一步阅读SO&gt; What is the difference between \r and \n?
答案 3 :(得分:0)
如果您不想在渲染输出中留下空白,请不要将其放入输入中 - 这很简单。或者,生成奇妙可读的xml作为中间步骤,并使用xslt将其处理为不具有不需要的空格的html。
N.b:建议用户在此答案中插入适当的<sarcasm>
标签;)
答案 4 :(得分:-3)
用这样的内联标记围绕它们
<span>a</span
><span>b</span>