我有一个 div,它是我的“弹出窗口”,我正在制作动画以显示在其父 div 的直接中心。所以我使用绝对定位、负边距和左+上来定位它,以便我可以简单地-webkit-transform: translateY(-100%)
在悬停时为其设置动画。在 Safari 和 Mobile Safari 上运行良好。
如果您在 Chrome 或 Firefox 中使用像素,它可以正常工作,即使您使用所有百分比但使用像素设置父 div 宽度,它也可以工作。但是,如果你使用所有百分比,FF+Chrome 似乎完全是假的,并根据我无法弄清楚的东西渲染百分比。
Fiddle 示例:在 Safari 和 FF/Chrome 中查看此内容,以查看 Safari 呈现#pixels
的效果与原样相同,#percents
并且应该在两者中呈现。是 Safari 造成了这个错误吗?
<div class="container">
<div class="pretendImage"></div>
<div id="percents"></div>
</div>
和我的 CSS:
#percents {
width:100%;
height:100%;
position:absolute;
top:50%;
left:50%;
margin:-50% 0 0 -50%;
}
.container {
position:relative;
width:50%;
height:auto;
}
.pretendImage {
width:200px;
height:200px;
}
好吧,我通过添加额外的包装器找到了解决方法。不过,我仍然想知道是什么原因造成的。
我的解决方法: Fiddle使用包装器来避免必须计算使用 80% 宽度/高度的内部 div 的顶部 + 边距。