CSS Transform - 保持悬停状态的价值

Mar*_*nes 5 css hover css-transforms

我已经把一个盒子变成了旋转 10 个?并添加了悬停状态以增加尺寸。

.box {
    margin: 0 auto;
    background: blue;
    width: 100px;
    height: 100px;
    -moz-transform: rotate(10deg);
    -webkit-transform: rotate(10deg);
    -o-transform: rotate(10deg);
    -ms-transform: rotate(10deg);
    transform: rotate(10deg);
}
.box:hover {
    -moz-transform: scale(1.2) rotate(10deg);
    -webkit-transform: scale(1.2) rotate(10deg);
    -o-transform: scale(1.2) rotate(10deg);
    -ms-transform: scale(1.2) rotate(10deg);
    transform: scale(1.2) rotate(10deg);
}
Run Code Online (Sandbox Code Playgroud)
<div class="box"></div>
Run Code Online (Sandbox Code Playgroud)


只是出于好奇,我想知道是否有一种方法可以不必添加 10?再次在悬停状态,它会保持与静态相同的值?

也许与此类似:
.box:hover {transform: scale(1.2) rotate(inherit)}

Pau*_*e_D 6

目前不适用于“标准”CSS。不过,独立/个体转换即将到来

也就是说,CSS 变量/自定义属性可以在这里提供帮助。

只需将变量定义为初始状态,scale(1)并在悬停时更改变量而不是重复整个属性集。

.box {
  margin: 3em auto;
  background: blue;
  width: 100px;
  height: 100px;
  transition: transform .3s ease;
  --scaler: 1;
  transform: scale(var(--scaler)) rotate(10deg);
}

.box:hover {
  --scaler: 1.2;
}
Run Code Online (Sandbox Code Playgroud)
<div class="box"></div>
Run Code Online (Sandbox Code Playgroud)