html - 为什么标签和跨度之间的空间会增加 div 的高度(仅限 Chrome)?

标签 html dom webkit css

我在客户网站上遇到了这个问题。我缩小了这个问题,发现问题是在结束标签和结束范围之间有一个空格。比较这两个:

<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 的高度差异很大,差异基于标签的边距。不在法郎。它似乎与内联 block 有关。但是,我似乎无法理解这些数字,而且 Chrome 开发人员工具似乎无法帮助我弄清楚这些数字。

这是一个显示高度的 fiddle :

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

更新: Safari 也会增加高度,但不如 Chrome 多。数字对我来说似乎很随机。

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

最佳答案

innerspan 中删除 float:left,似乎在您的 fiddle 中起作用。我在这里完全明白 span/float 的目的。使用 float 从文档流中删除元素。如果要将文本左对齐,请使用 text-align:left。

编辑:

HTML 中的空白会影响所有内联元素,尤其会影响高度。您已经在 outerspan 上使用了 display:inline-block。如果您注意到,在第二个 DIV 中的结束 span 标记之前有空格。这就是额外高度的原因。

<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>

您会注意到,如果您删除结束 span 标记之前的空格,它会影响高度。因此,无论是使用 display: block 都会忽略空白或删除 HTML 中的空格。

关于html - 为什么标签和跨度之间的空间会增加 div 的高度(仅限 Chrome)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20097372/

相关文章:

javascript - 什么是基于 DOM 的 XSS?

javascript - 仅在单击下拉菜单时填充下拉菜单

javascript - 选择选项更改 URL

javascript - 如何创建动态 html 表单的创建 JSON 对象(表单元素)?

javascript - 禁用默认功能jquery

objective-c - 在 WebKit 上的 Mac OS 应用程序中启用 WebGL

iOS/WebKit : touchmove/touchstart not working on input & textarea

javascript - 服务 Headless Webkit 的最熟练方法

html - 媒体查询边框长度

Javascript 设置带有滚动事件的翻译很慢