如何重置CSS3*-transform:translate(...)?

kni*_*ttl 52 reset css3 css-transforms

如何重置CSS transform属性CSS translate值?

说我有:

div.someclass {
    -webkit-transform: translate3d(0, -50%, 0);
       -moz-transform: translate(0, -50%);
        -ms-transform: translate(0,- 50%);
         -o-transform: translate(0, -50%);
            transform: translate3d(0, -50%, 0);
}
Run Code Online (Sandbox Code Playgroud)

那么如何清除所有变换/翻译?


我应该使用: translate(0, 0);/translate3d(0, 0, 0); transform:auto;

Sim*_*one 88

具体根据MDN文档,所述初始值none.

您可以使用以下方法重置转换:

div.someclass {
    transform: none;
}
Run Code Online (Sandbox Code Playgroud)

使用供应商前缀:

div.someclass {
    -webkit-transform: none; /* Safari and Chrome */
       -moz-transform: none; /* Firefox */
        -ms-transform: none; /* IE 9 */
         -o-transform: none; /* Opera */
            transform: none;
}
Run Code Online (Sandbox Code Playgroud)


Bra*_*ito 5

macOS 上的 Safari iOS 10.3、11.0 和 Safari 11 实际上并没有正确重置转换,-webkit-transform: none;或者transform: none; 我不得不重置我使用转换属性更改的所有值,所以基本上我认为第一个选项

translate(0, 0); / translate3d(0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

是目前浏览器兼容性的方法。所以这应该有效:

-webkit-transform: translate(0, 0) translate3d(0, 0, 0);
-moz-transform: none;
-ms-transform: none;
-o-transform: none;
transform: translate(0, 0) translate3d(0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

  • 只是为了确认这个问题在 2021 年的 Safari iOS 14.0 中仍然存在。现在不需要前缀,但 `transform: none` 不会立即生效;`transform:translate(0px)` 确实有效,甚至可以取消另一种类型的变换,例如旋转。Safari 的行为让我感到困惑,直到我找到这个问题和答案;`transform: none` 似乎适用于我尝试过的所有其他浏览器。 (2认同)