2013-11-20 12 views
0

我在客户端上有这个问题。我已经缩小了这个问题,并且看到问题是一个介于关闭标签和关闭范围之间的单个空间。比较这两个:为什么标签和跨度之间的距离会增加div(仅限Chrome)的高度?

<div class="outerdiv"> 
<span class="outerspan"><span class="innerspan"></span> 
<input type="radio" value="true" checked="checked"><label>Label</label></span> 
</div> 


<div class="outerdiv"> 
<span class="outerspan"><span class="innerspan"></span> 
<input type="radio" value="true" checked="checked"><label>Label</label> </span> 
</div> 

在Chrome中,外部div的高度差异很大,差异是基于标签的边距。不在FF中。这似乎与内联块有关。不过,我似乎无法理解这些数字,Chrome开发人员工具似乎并没有帮助我让他们变得直白。

这里显示的高度小提琴:

http://jsfiddle.net/3hHk5/6/

更新: Safari浏览器增加了高太多,但不如Chrome浏览器。数字对我来说似乎很随意。

澄清: 我想了解为什么 FF,Chrome和Safari之间的高度不同,以及数字的来源。我的特定问题的修复可能只是删除空间:)

+0

Duplicate:http://stackoverflow.com/questions/2346383/chrome-doesnt-render-span-in-div-properly – dwurf

回答

0

删除浮动:从 innerspan,似乎在摆弄工作。我在这里完全达到了span/float的目的。使用float从文档流中移除元素。如果要将文本对齐到左侧,请使用text-align:left。

编辑:

在HTML的空格会影响所有的内联元素,它特别影响的高度。您已在外部使用display:inline-block。如果您注意到,第二个DIV中的结尾跨度标记之前有空格。这是额外高度的原因。

<div id="space" class="outerdiv space"> 
<span class="outerspan"><span class="innerspan"></span><input type="radio" value="true"  checked="checked"><label>Label</label> </span> 
</div> 

您会注意到,如果您在关闭跨度标记之前移除空间,则会影响高度。因此,使用display:block会忽略空格或者删除HTML中的空格。

+0

感谢您抽出时间。如果我不清楚,我很抱歉,但我想了解为什么FF,Chrome和Safari之间的高度不同以及数字的来源。 –

+0

请看我编辑的答案。 – Poornima

+0

再次感谢,但我不明白的是1)FF为什么没有额外的高度? 2)如果我用“FOO”替换空间,为什么Chrome中没有额外的高度? 3)为什么FF,Chrome和Safari之间的高度不同,后来都是webkit?这是否与默认线高有关? 4)高度是如何计算的?在CSS中没有数字可以添加到div的实际高度。 –

0
.outerspan { 
    display:block; 
} 
相关问题