我试图在链接上放置一个负的translateZ。在webkit浏览器中,这可以正常工作,但是如果Firefox的悬停/链接/事件侦听器功能的值低于神奇的-0.1px,则会中断该功能。

请注意,仅在块元素上以及在父元素上设置transform-style: preserve-3d;时,它才损坏。但是,如代码笔所示,该链接仍可聚焦。

<a class="arrow" href="#bla">
  <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
    <path d="M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z"></path>
  </svg>
</a>


body {
  transform-style: preserve-3d;
}

.arrow {
  width: 3rem;
  height: 3rem;

  display: block;
  border: 2px solid black;
  background: white;

  // Breaks hover for values lower than -0.1px
  transform: translateZ(-0.2px);
}

// This should work, but is broken in Firefox
.arrow:hover {
  background: red;
}


示例代码笔:
https://codepen.io/anon/pen/yXmgZZ?editors=1100

这是预期的行为,仅仅是Firefox中的错误还是我遗漏了一些东西?我该怎么做才能使其正常工作?

谢谢!

最佳答案

使用transform: perspective(0px) translateZ(-0.2px);

检查CODEPEN

10-06 01:15