我有一些在 Firefox 17 中可以正常工作的 HTML/CSS,但在升级到 Firefox 18 后,它的行为不再符合我的预期。我不确定我的 CSS 是否做错了(这完全有可能,因为我是新手),或者 Firefox 18 中是否引入了错误。
以下 HTML 文件重现了该问题:
<html><head>
<title>Transform test</title>
<style>
div.overlay {
background-color: rgba(230, 230, 230, 0.8);
bottom: 0;
left: 0;
position: fixed;
right: 0;
top: 0;
}
div.overlay.transparent {
background-color: transparent;
}
div.overlayFrame {
background-color: white;
border: 1px solid gray;
overflow: hidden;
position: absolute;
}
div.overlayFrame0 {
bottom: 50px;
left: 50px;
right: 50px;
top: 50px;
}
div.overlayFrame1 {
bottom: 45px;
left: 55px;
right: 45px;
top: 55px;
}
</style>
</head>
<body>
<div class="overlay">
<div style="-moz-transform: scale(1, 1);" class="overlayFrame overlayFrame1">
<div class="overlay transparent">
<div style="-moz-transform: scale(1, 1);" class="overlayFrame overlayFrame0">
</div>
</div>
</div>
</div>
</body></html>
在 Firefox 17 中,这会产生相互堆叠的 div 偏移 5px,但在 Firefox 18 中,顶部 div 偏移更多。不过,奇怪的是,Firebug 认为放错位置的顶部 div 仍然在正确的位置,因为如果您在其 HTML 树查看器中选择该 div,它会在 Firefox 17 显示它的同一位置为该 div 绘制一个突出显示。
我已经对此进行了调试,直到确定如果我从外部 overlayFrame div 中删除“style”属性,则顶部 overlayFrame div 将显示在“正确”位置。
这是 Firefox 18 中的错误还是我正在做的事情?谢谢。