【发布时间】:2012-11-17 21:48:18
【问题描述】:
我之前遇到过垂直填充问题,并认为在解决它时我已经完全理解了。但又一次,我被困住了......
我正在尝试一些现有的主题以了解它们是如何工作的,并且遇到了 Firefox 17 和 Google Chrome 23 之间存在严重不一致的问题,都在 Win7 上。
我已将代码缩小到下面的小 sn-p。 (我内联了一些样式以节省空间)。
<!DOCTYPE html >
<head>
<style type="text/css">
.container:after{
content: "\0020";
display: block;
clear: both;
}
</style>
</head>
<body>
<div class="container" style="background:#0f0;">
<div style="float: left;" >Words</div>
</div>
<div style="background:#f00; margin-top: 100px;">Words</div>
</body>
</html>
如果我在 Google Chrome(或在 IE 8)中尝试上述操作,它的行为与我预期的一样。第一个顶级 div 位于页面顶部,第二个顶级 div 在其下方,由于其顶部边距样式而隔开。
但是,当我在 Firefox 中尝试时,第一个 div 现在已经在页面下方隔开。这与 2nd divs margin-top 参数直接相关。增加该值将增加整个 <body> 元素的上边距间距,即使它的样式没有改变。
现在我知道:after 和content: "\0020" 部分是clearfix 的一部分,我承认没有100% 了解clearfixes 和floats 但是,我很担心上面的代码在 2 个主要浏览器中的行为会如此不同。
有人可以告诉我我在这里缺少什么以及为什么行为不同吗?
编辑:正如 BoltClock 所指出的,这看起来是长期存在的(自 FF2 起)FireFox bug 的副本 -
【问题讨论】:
-
这是一个 jsfiddle:jsfiddle.net/g3Avj。这种行为肯定是不正常的。
标签: css firefox google-chrome