2016-08-23 51 views
1

比方说,我们有在HTML代码中的以下区别相同的2个输入标签:如何防止HTML代码显示空间

例1

<input type="text" id="v1" value="value 1"><input type="text" id="v2" value="value 2">

例2

<input type="text" id="v1" value="value 1">

<input type="text" id="v2" value="value 2">

这两个例子产生不同的输出,至少我的PC和我的浏览器是铬[版本52.0.2743.116米(64位)]上。这两个输入之间有一些空间!看起来好像浏览器将新行转换为空格。但即便如此,如果你在源代码中的输入之间建立了多条新线路,空间仍然只是一个空间!

有谁知道这是为什么?

如果是这样,请说明您使用的浏览器(和版本)。哦,是的,john_h是那种使this代码上拨弄

谢谢...

+0

我的问题被解读得很糟糕。此链接更好地解释了我的问题。只要看看该链接的来源。 http://sasho.emit24.com/crlf_inputs.html – sasho

回答

2

问题是两个输入之间的白色空间正在渲染。输入之间的任何空格(换行符,制表符,空格)将被浏览器渲染为单个空间。要解决这个问题,你可以在父元素上设置字体大小为0。

For e。G:

<div class="block"> 

<input type="text" id="v1" value="value 1"><input type="text" id="v2"value="value 2"> 
<input type="text" id="v1" value="value 1"> 

<input type="text" id="v2" value="value 2"> 
</div> 

CSS:

.block { 
font-size: 0; 
} 

这将显示任何输入ù添加到父元素作为字体大小被设置为零之间没有空格。希望我能够澄清你的疑惑。谢谢。

+0

嗨@Sazz,谢谢你为我清除这个问题。我已经更新小提琴代码https://jsfiddle.net/zale/dzxvzfhc/4/反映您的评论... – sasho

+1

这是一个更简单的方法来做到这一点,而不是使用这么多的div和css。一探究竟。 https://jsfiddle.net/dzxvzfhc/5/。 – Sazz

+0

就这样,整洁......;) – sasho

0

相信渲染你的网站时,浏览器,它不考虑/ R/N(这会导致新线文件1)作为新行,而是将/ r/n渲染为空白(并且您使用<br />来处理新行)。

另外,如果要制作多个空格,则使用&nbsp;来表示空格。

+0

看起来,显示我的问题的代码使它有点滑稽,因为文件1和文件2实际上是相同的。然而,你猜对了,这完全是关于渲染时将/ r/n转换为空格字符。我想问的是如何防止浏览器将/ r/n转换为空格。所以这个问题还没有答案。 – sasho

+0

@sasho虽然你可以尝试使用'<\ r \ n input />'或将其包装在表格单元格 –

2

这些应该产生在浏览器相同的外观,如果你有一个链接到一个小提琴,可以说送过来,或者你可以看看这个:https://jsfiddle.net/john_h/0mz8afyd/1/

有一件事你可能会遇到不关闭标签。例如,这样的:

< input type="text" id="v1" value="value 1" > 

< input type="text" id="v2" value="value 2" > 

大于该不同:

<input type="text" id="v1" value="value 1" /> 

<input type="text" id="v2" value="value 2" /> 

并且也不包括 “<” 和 “输入” 之间的空间。

如果你想这两个不同线,只需将第一次输入后添加<br/>

<input type="text" id="v1" value="value 1" /> 
<br/> 
<input type="text" id="v2" value="value 2" /> 
+0

中,这很难阻止这种行为。请看这里的真实生活情况:http://sasho.emit24 .com/crlf_inputs.html并查看该文件的来源,然后你就会明白我的问题是什么。 – sasho

+0

看看线条差异如何影响外观:https://jsfiddle.net/john_h/dzxvzfhc/1/两个输入标签之间没有任何空格,它们彼此相邻。这可能与浏览器相关,但如果您想要空间,只需将输入元素放在单独的行中即可。如果你不想要这个空间,把它们放在同一条线上。这有点骇人听闻,但它的工作。 –

+0

不,我不想那个空间。我试图摆脱它,因为它影响我如何编写我的代码,这是愚蠢的,对吗?但是不管你发布的小提琴链接是否有区别。我使用Chrome(版本52.0.2743.116 m(64位))。你使用的是什么浏览器?有没有办法在这里附上一些图片? – sasho