How to reset CSS3 *-transform: translate(…)?

2019-03-08 22:06发布

How can I reset CSS transform properties CSS translate value?

Say I have:

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);
}

Then how do I clear all transformations/translations?


Should I use: translate(0, 0); / translate3d(0, 0, 0); or transform:auto; ?

2条回答
仙女界的扛把子
2楼-- · 2019-03-08 22:32

In Safari iOS 10.3 and 11.0 and Safari 11 on macOS didn't actually reset the transformation properly with -webkit-transform: none; or transform: none; I had to instead reset all the values I changed with the transform property so essentially I think the first option

translate(0, 0); / translate3d(0, 0, 0);

is the way to go for browser compatibility for now. So this SHOULD work:

-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);
查看更多
不美不萌又怎样
3楼-- · 2019-03-08 22:55

As per the MDN documentation, the Initial value is none.

You can reset the transformation using:

div.someclass {
    transform: none;
}

Using vendor prefix:

div.someclass {
    -webkit-transform: none; /* Safari and Chrome */
       -moz-transform: none; /* Firefox */
        -ms-transform: none; /* IE 9 */
         -o-transform: none; /* Opera */
            transform: none;
}
查看更多
登录 后发表回答