如何让 Microsoft Edge 在鼠标悬停时正确处理我的 3D 透视图 css?

How to get Microsoft Edge handling my css for 3D in perspective correctly for mouse hovering?

我正在使用 css 属性 perspectivetransform 在 html 中创建一个 3D 世界。在 Google Chrome 中一切正常,但在 Microsoft Edge 中有一些问题......我使用这个 jsfiddle 缩小了范围:https://jsfiddle.net/uke8bsvk/12/

fiddle 中的第三个变体是错误的地方。它在 Google Chrome 中工作正常,但在 Microsoft Edge 中,红色 div 通过将其颜色更改为绿色无法很好地响应鼠标悬停它。它只响应将鼠标悬停在靠近红色底部的地方 div.

在第四个变体中,我为红色 div 删除了 transform-style: preserve-3d 并且一切正常。

有没有人知道这里发生了什么以及如何解决它?

PS。在我的真实情况下,有时我有一个 child div 需要保留 3d,有时我没有 child div。根据 child div.

的存在,使用明显的脏工作设置和删除 transform-style: preserve-3d 并不是真正的选择

您需要使用 Autoprefixer 在 css 中为 3d 属性添加前缀。您可以在网站上完成,也可以将其作为扩展添加到您选择的代码编辑器中。

它会将其中一些前缀添加到您的代码中:

-webkit-transform-origin: bottom left;
      transform-origin: bottom left;
-webkit-transform: rotateX( 30deg );
      transform: rotateX( 30deg );
      background: red;
-webkit-transform-style: preserve-3d;
      transform-style: preserve-3d;

这是更新后的 Fiddle.

您应该为您的每一个网络项目添加前缀。

我在 'solve' 问题周围发现了一个相对干净的 trick/work:只需添加一个额外的 child div,使其不可见并将其旋转出平面transform: rotateX( 1deg )。参见 jsfiddle:https://jsfiddle.net/uke8bsvk/13/