如本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和IE则不会显示间隙。我不知道谁在这里遵循规范,但我不能为我的生活得到这个在所有浏览器中显示相同,这让我发疯。有什么想法吗?
编辑:对不起伙计们,我正在看一个相当复杂的布局,错误地认为某些元素是浮动的,而不是。浮动元素的行为符合预期。
答案 0 :(得分:1)
使用display:none;
答案 1 :(得分:1)
奇。我可以看到正在发生的事情的一些逻辑。它似乎使用前一个元素的行高作为高度。例如,如果你在<br />
之前添加它,如下所示:
<div class="weird" /><br />
...然后设置其行高:
div.weird {
line-height: 0;
}
(jsFiddle here)
...然后<br />
失去了它的高度。
所以,我猜测换行符“继承” - 尽管这是一个错误的词 - 前一段文本的高度。我不确定这是真的发生了什么,但它最能让我想到的解释。
但是,真的,我和其他所有人在一起 - 如果你不想在行之间休息,不要使用换行符。无论如何,如果你要用一些非语义来清除内容,我只会使用它并使用<div>
;网络社区的实际元素将理解并原谅你:)