PFAD: ./module/css/css4/

DATEI: string(25) "00Inhaltsverzeichnis4.php"
DATEI: string(21) "22CSS-Animationen.php"
DATEI: string(26) "23AnimationenUndPraxis.php"
DATEI: string(26) "24AnimationenUndKarten.php"
DATEI: string(26) "26 2D-Transformationen.php"
DATEI: string(19) "27rotateUndskew.php"
DATEI: string(30) "28Mehrere Transformationen.php"
DATEI: string(26) "29 3D-Transformationen.php"
DATEI: string(14) "30 3D-Raum.php"
DATEI: string(22) "31 3D-AchseUndRaum.php"
DATEI: string(22) "32EinUndAusblenden.php"
DATEI: string(28) "33WürfelUndBildergalerie.php"
DATEI: string(15) "34 3D-Karte.php"

css mit Adi Prinz

2D-Transformationen

Elemente mit transform verändern

Mit der CSS-Eigenschaft transform können Elemente verschoben, vergrößert, verkleinert, gedreht oder geneigt werden. Die Veränderung erfolgt im zweidimensionalen Koordinatensystem entlang der x-Achse und der y-Achse.

  • Die x-Achse verläuft waagrecht von links nach rechts.
  • Die y-Achse verläuft senkrecht von oben nach unten.
Eine Transformation verändert normalerweise nicht den Platz, den ein Element im Dokumentfluss belegt. Andere Elemente werden daher nicht automatisch verschoben.

Grundlegende Schreibweise

selektor {
  transform: transformierungsfunktion(wert);
}
    

Ein einfaches Beispiel:

.element {
  transform: translateX(50px);
}
    

Das Element wird dabei optisch um 50px nach rechts verschoben. Sein ursprünglicher Platz im Layout bleibt jedoch erhalten.

Wichtige 2D-Transformationsfunktionen

Funktion Beschreibung Beispiel
translate() Verschiebt ein Element entlang der x- und y-Achse. translate(40px, 20px)
translateX() Verschiebt ein Element entlang der x-Achse. translateX(40px)
translateY() Verschiebt ein Element entlang der y-Achse. translateY(20px)
scale() Vergrößert oder verkleinert ein Element. scale(1.2)
rotate() Dreht ein Element um einen angegebenen Winkel. rotate(15deg)
skew() Neigt ein Element entlang der x- und y-Achse. skew(10deg, 5deg)
matrix() Fasst mehrere 2D-Transformationen in einer Matrix zusammen. matrix(1, 0, 0, 1, 40, 20)
Für normale Lern- und Praxisbeispiele sind die einzelnen Funktionen wie translate(), scale() und rotate() leichter verständlich als matrix().

Elemente mit translate() verschieben

Verschieben entlang der x- und y-Achse

Die Funktion translate() verschiebt ein Element von seiner ursprünglichen Position. Dabei können Werte für die x-Achse und die y-Achse angegeben werden.

transform: translate(x, y);
    
  • Der erste Wert bestimmt die Verschiebung entlang der x-Achse.
  • Der zweite Wert bestimmt die Verschiebung entlang der y-Achse.
  • Positive x-Werte verschieben das Element nach rechts, negative nach links.
  • Positive y-Werte verschieben das Element nach unten, negative nach oben.
.element {
  transform: translate(40px, 20px);
}
    

In diesem Beispiel wird das Element um 40px nach rechts und um 20px nach unten verschoben.

Beispiel für translate()

translate()
.translate-xy {
  transform: translate(40px, 20px);
}
    
Der gestrichelte Rahmen kennzeichnet den ursprünglichen Platz des Elements. Die farbige Box wird nur optisch verschoben. Der belegte Platz im Dokumentfluss bleibt unverändert.

Verschieben entlang einer einzelnen Achse

Soll ein Element nur waagrecht oder nur senkrecht verschoben werden, können translateX() und translateY() verwendet werden.

translateX()

translateX()
.translate-x {
  transform: translateX(50px);
}
        

Die Box wird um 50px nach rechts verschoben.

translateY()

translateY()
.translate-y {
  transform: translateY(30px);
}
        

Die Box wird um 30px nach unten verschoben.

Prozentwerte bei translate()

Bei einer Verschiebung mit Prozentwerten beziehen sich die Werte auf die Größe des transformierten Elements:

  • translateX(100%) entspricht der eigenen Breite des Elements.
  • translateY(100%) entspricht der eigenen Höhe des Elements.
.element {
  transform: translateX(100%);
}
    
Prozentwerte bei translate() beziehen sich normalerweise nicht auf das Elternelement, sondern auf die Abmessungen des verschobenen Elements.

Elemente mit scale() skalieren

Elemente vergrößern und verkleinern

Mit der Funktion scale() kann ein Element vergrößert oder verkleinert werden. Die Skalierung kann gemeinsam oder getrennt entlang der x- und y-Achse erfolgen.

transform: scale(x, y);
    
  • Der erste Wert bestimmt die Skalierung entlang der x-Achse.
  • Der zweite Wert bestimmt die Skalierung entlang der y-Achse.
  • Wird nur ein Wert angegeben, gilt er für beide Achsen.
Wert Wirkung
scale(1) Das Element behält seine ursprüngliche Größe.
scale(1.25) Das Element wird auf 125 % seiner Größe vergrößert.
scale(0.75) Das Element wird auf 75 % seiner Größe verkleinert.
scale(1.5, 0.75) Das Element wird waagrecht vergrößert und senkrecht verkleinert.
scale(-1) Das Element wird an beiden Achsen gespiegelt.

Beispiele für scale()

Element vergrößern

scale(1.25)
.scale-up {
  transform: scale(1.25);
}
        

Die Box wird entlang beider Achsen auf 125 % ihrer ursprünglichen Größe vergrößert.

Element verkleinern

scale(0.75)
.scale-down {
  transform: scale(0.75);
}
        

Die Box wird entlang beider Achsen auf 75 % ihrer ursprünglichen Größe verkleinert.

Auch eine Skalierung verändert normalerweise nicht den Platz des Elements im Dokumentfluss. Eine vergrößerte Box kann daher benachbarte Inhalte optisch überdecken.

Einzelne Achsen skalieren

Mit scaleX() und scaleY() kann die Skalierung auf eine einzelne Achse beschränkt werden.

scaleX()

scaleX()
.scale-x {
  transform: scaleX(1.4);
}
        

Die Box wird nur entlang der x-Achse verbreitert. Ihre Höhe bleibt unverändert.

scaleY()

scaleY()
.scale-y {
  transform: scaleY(1.4);
}
        

Die Box wird nur entlang der y-Achse vergrößert. Ihre Breite bleibt unverändert.

Elemente mit negativen Werten spiegeln

Negative Skalierungswerte kehren die Darstellung entlang der jeweiligen Achse um. Dadurch kann ein Element waagrecht oder senkrecht gespiegelt werden.

.horizontal-spiegeln {
  transform: scaleX(-1);
}

.vertikal-spiegeln {
  transform: scaleY(-1);
}
    
  • scaleX(-1) spiegelt das Element waagrecht.
  • scaleY(-1) spiegelt das Element senkrecht.
Bei Text führt eine Spiegelung dazu, dass auch die Schrift spiegelverkehrt dargestellt wird. Sie eignet sich daher eher für Bilder, Symbole oder dekorative Elemente.