css - 无法在 webkit 中折叠 <br>?

标签 css cross-browser

如本 jsfiddle 中所示:http://jsfiddle.net/qrbhb/

如果您采用此标记:

<div>There should be no gap between us</div>
<br />
<div>There should be no gap between us</div>

和这个 CSS:

div {
    background: #999;
}

br {
    clear: both;
    display: block;
    overflow: hidden;
    visibility: hidden;
    width: 0;
    height: 0;
}

所有基于 webkit 的浏览器都会显示一个等于父元素行高的间隙,而 firefox 和 IEs 不会显示间隙。我不知道谁在遵循这里的规范,但我终其一生都无法让它在所有浏览器中显示相同,这让我发疯。有什么想法吗?

编辑:对不起各位,我在看一个相当复杂的布局,并错误地认为有些元素是 float 的,但实际上不是。 float 元素的行为符合预期。

最佳答案

奇怪。我可以看到正在发生的事情的一些逻辑。它似乎使用前面元素的行高作为高度。例如,如果您将其添加到 <br /> 之前如图:

<div class="weird" /><br />

...然后设置它的行高:

div.weird {
    line-height: 0;
}

(jsFiddle here)

...然后是 <br />失去它的高度。

因此,我猜测换行符“继承”了——尽管这是个错误的词——前面一段文本的高度。我不确定这到底是怎么回事,但这是我能想到的最合理的解释。

但实际上,我和其他人一样——如果您不想在行与行之间换行,就不要使用换行符。无论如何,如果您要清除一些非语义的东西,我会接受它并使用 <div> ;网络社区的实际元素会理解并原谅你:)

关于css - 无法在 webkit 中折叠 <br>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5261925/

相关文章:

javascript - 在 jQuery 中使用类选择器的图像缩放框架位置

css - HTML5 表格单元格填充 - 在浏览器中有所不同

css - 谷歌字体和跨浏览器 Unicode

css - 在除 IE 之外的所有浏览器中都奇怪地调整大小

javascript - 浏览器调整大小不影响 HTML 内容

java - 如何在显示标签中指定排序图标的位置

javascript - MPEG-DASH 跨浏览器播放

javascript - jQuery、onclick 和禁用选择

html - 如何将 2 个 SVG 并排放置在容器中并调整容器的高度?

css - 为什么这个绝对定位的元素会跟随流呢?