Individuelle CSS-Transformationsfunktionen

Avatar of Chris Coyier
Chris Coyier on

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Dan Wilson dokumentiert eine klassische Ärgernis mit Transforms

button {
  transform: translateY(-150%);
}
button:hover {
  /* will (perhaps unintentionally) override the original translate */
  transform: scale(.8);
}

Die native (und WET) Lösung ist, den ursprünglichen Transform erneut aufzulisten

button:hover {
  transform: translateY(-150%) scale(.8);
}

Dans Trick ist es, stattdessen benutzerdefinierte Eigenschaften zu verwenden. Legen Sie sie alle sofort auf dem Element fest und setzen Sie sie dann im :hover -Zustand neu

:root {
  --tx: 150%;
  --scale: 1;
}
button {
  transform: 
    translateY(var(--tx))
    scale(var(--scale));
}
button:hover {
  --scale: 0.8;
}

Kaskadierende benutzerdefinierte Eigenschaften FTW.

Direkter Link →