CSS Transform
Mit transform kannst du HTML-Elemente visuell verändern, ohne ihre Position im Dokumentenfluss zu verändern. Elemente lassen sich verschieben, drehen, skalieren oder neigen – rein visuell und ohne das Layout neu zu berechnen.
Wichtig:
transformändert nicht die Position im Layout- Es wirkt nur visuell
Typische Einsatzgebiete:
- Animationen & Hover-Effekte
- Drehen von Icons
- Zoomen von Karten
- 3D-Effekte
Syntax
.element {
transform: transform-funktion(wert);
}
Beispiel:
.box {
transform: rotate(45deg);
}
Transform Beispiele
translate verschiebt hier das Element um 50px in beide Richtungen (X- und Y-Achse).
transform: translate(50px, 50px);
scale skaliert das Element um 150%. Minuswerte sind möglich.transform: scale(1.5, 1.5)
scale skaliert das Element um 120%. Wenn die Skalierung minus Werte hat, wird es gespiegelt.
transform: scale(-1.2, -1.2);
rotate das Element wird um die Z-Achse in Uhrzeiger-Richtung gedreht. Minuswerte drehen das Element in die andere Richtung.transform: rotate(50deg);
skew neigt die Fläche im angegebenen Winkel und der definierten Richtung.
transform: skew(20deg, 10deg);
Kombination
transform: translateX(50px) rotate(45deg) scale(1.2);
Transform-Funktionen
translate()Verschiebt ein Element entlang der X- und/oder Y-Achsescale()Vergrössert oder verkleinert ein Element (Skalierung)rotate()Dreht ein Element um die Z-Achseskew()Neigt ein Element in einem bestimmten Winkel
translate() – Verschieben
Bewegt ein Element relativ zu seiner aktuellen Position.
transform: translate(x, y);
Beispiel
transform: translate(50px, 0); /* nach rechts */
transform: translate(0, -20px); /* nach oben */
transform: translate(50%, 100%);
Varianten
translateX(50px)
translateY(20px)
- Werte: px | rem | em | %
- Negative Werte: werden akzeptiert
scale() – Skalieren (vergrössern / verkleinern)
transform: scale(1.2); /* 120% */
transform: scale(0.8); /* 80% */
Unterschiedliche Achsen:
transform: scaleX(1.5);
transform: scaleY(0.5);
- Werte: Nummer | %
- Negative Werte: sind möglich und können das Element spiegeln.
- Skaliert auch Inhalt & Rahmen.
rotate() – Drehen
transform: rotate(45deg);
transform: rotate(-90deg);
Andere Einheiten:
rotate(0.5turn)
rotate(1rad)
- Werte: deg | turn | rad
- Negative Werte: sind möglich
- Drehpunkt ist standardmässig die Mitte.
skew() – Neigen
transform: skew(20deg, 10deg);
Einzeln:
skewX(20deg)
skewY(10deg)
- Werte: deg
- Negative Werte: sind möglich und drehen in die andere Richtung.
- Kann Texte schwer lesbar machen.
Transform kombinieren
Reihenfolge ist wichtig und macht einen grossen Unterschied!
Transform-Funktionen werden von rechts nach links angewendet.
transform: translateX(50px) rotate(45deg) scale(1.2);
Dreh- & Skalierpunkt
transform-origin bestimmt den Punkt, um den ein Element rotiert oder skaliert. Standard ist die Mitte des Elements.
transform-origin: center; /* Standard */
Beispiele:
transform-origin: top left;
transform-origin: 50% 100%;
transform-origin: 0 0;
Transform & Transition
Die Eigenschaft transform bestimmt, wie das angesprochene Element transformiert werden soll. Die Eigenschaft transition ermöglicht eine lineare Transformationen von Elementen. Das perfekte Duo für Animationen, flüssig und performant Transition Lektion
.box {
transition: transform 0.3s ease;
}
.box:hover {
transform: scale(1.1);
}
Advanced
3D-Transforms
Werte: rotateX, rotateY, rotateZ
transform: rotateY(45deg);
perspective
.container {
perspective: 800px;
}
Kurzschreibweise
transform: perspective(800px) rotateY(45deg);
Ohne perspective sieht 3D flach aus.
See the Pen Untitled by Intensivstation (@intensivstation) on CodePen.