clear: both;
当容器使用(或左/右)容器时,我偶然发现了一个带有浮动元素的错误。在 Chrome(不是 Safari)中,第一个浮动元素的位置正确,但所有后续元素似乎都继承了父元素的上边距,使它们偏离了线。
这是有问题的代码:http: //jsfiddle.net/peterjmag/3zJey/1/
尝试切换链接以查看差异。此外,尝试各种值margin-top
on #product-listing
。
对于那些使用其他浏览器的人来说,这就是小提琴对我来说的样子(在 Chrome 25.0.1364.160 for Mac 中):
为什么clear: both;
会在 Chrome 中导致这种行为?根据CSS 2.1 规范,该clear
属性应该只影响文档中较早出现的浮动元素,而不是目标元素中的浮动元素。
(当然,我知道还有其他更优化的方法可以清除文档中的先前元素,这些元素不需要容器 div 上的 clear 属性——我只是想了解为什么会发生这种情况。)