1

clear: both;当容器使用(或左/右)容器时,我偶然发现了一个带有浮动元素的错误。在 Chrome(不是 Safari)中,第一个浮动元素的位置正确,但所有后续元素似乎都继承了父元素的上边距,使它们偏离了线。

这是有问题的代码:http: //jsfiddle.net/peterjmag/3zJey/1/

尝试切换链接以查看差异。此外,尝试各种值margin-topon #product-listing

对于那些使用其他浏览器的人来说,这就是小提琴对我来说的样子(在 Chrome 25.0.1364.160 for Mac 中):

JSFiddle 输出截图

为什么clear: both;会在 Chrome 中导致这种行为?根据CSS 2.1 规范,该clear属性应该只影响文档中较早出现的浮动元素,而不是目标元素中的浮动元素。

(当然,我知道还有其他更优化的方法可以清除文档中的先前元素,这些元素不需要容器 div 上的 clear 属性——我只是想了解为什么会发生这种情况。)

4

1 回答 1

1

看来这确实是一个 Chrome 错误:Issue 178134: Floated elements render wrong when parent element has a clear property + a top margin。根据该报告,Chrome 27 及更高版本不受影响。

于 2013-03-12T21:21:22.843 回答