我遇到了一个浏览器兼容的问题,并发现这是由谷歌Chrome和Safari处理z索引和翻译3D不同。我在这里举一个最小的例子:
<div>
<div style="background-color: blue; height: 100px; width: 100px; position: absolute; transform: translate3d(10px, 10px, 10px)"></div>
<div style="background-color: red; height: 100px; width: 100px; position: relative; z-index: 1"></div>
</div>
这个简短的html,在Safari和Google Chrome中显示不同。
我可以知道哪一个是期望的行为吗?如何正确使用z-index和transform?
我尝试了不同的浏览器,并做了一个最小的例子。
1条答案
按热度按时间bvuwiixz1#
Safari在浏览器中也将translate 3d属性作为一个图层使用,并且它具有这种不同的显示方法,因此如果您将元素与z-index和其他元素与translateZ一起放置,translateZ或translate 3d将在z-index元素上工作
因此,为了避免safari的问题,我建议您使用translateY和translateX方法,如下面的注解所示,或者将translateZ设置为与设置z-index相同
以下是关于Safari的更多信息:https://bugs.webkit.org/show_bug.cgi?id=61824
示例: