我正在使用一个框架(Sencha Touch),它将以下样式应用于许多元素,可能是为了加快它们在移动设备上的速度:
-webkit-transform: translate3d(0px, 0px, 0px);
通常,这不会改变元素的显示方式。但是我注意到当一个元素具有这种样式时,它会影响相邻元素上的阴影过滤器。在此示例中(使用 Mac 版 Chrome 或 iOS 版 Safari),下面的顶部图像在 translate3d 元素旁边,而底部图像不是:
有人可以解释这是为什么,以及是否有办法避免它?只有当带有阴影的元素也有 z-index 时才会发生这种情况。但我需要保留 z-index。
这是来源:
<style>
.top {
position: absolute;
z-index: 1;
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 50px solid blue;
-webkit-filter: drop-shadow(5px 5px 10px rgba(0, 0, 0, 0.75));
}
.bottom {
height: 80px;
}
.translated {
-webkit-transform: translate3d(0px, 0px, 0px);
}
</style>
<div class="top"></div>
<div class="bottom translated"></div>