transform
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Die transform
CSS Eigenschaft erlaubt es Ihnen, ein Element zu drehen, zu skalieren, zu verzerren oder zu verschieben.
Sie modifiziert den Koordinatenraum des CSS visuellen Formatierungsmodells.
Probieren Sie es aus
transform: matrix(1, 2, 3, 4, 5, 6);
transform: translate(120px, 50%);
transform: scale(2, 0.5);
transform: rotate(0.5turn);
transform: skew(30deg, 20deg);
transform: scale(0.5) translate(-100%, -100%);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
Wenn die Eigenschaft einen anderen Wert als none
hat, wird ein Stacking-Kontext erstellt.
In diesem Fall wird das Element als enthältender Block für alle darin enthaltenen position: fixed;
oder position: absolute;
Elemente agieren.
Warnung:
Nur transformierbare Elemente können transform
iert werden.
Das heißt, alle Elemente, deren Layout durch das CSS-Boxmodell geregelt wird, mit Ausnahme von: nicht-ersetzte Inline-Boxen, Tabellenspalten-Boxen und Tabellenspalten-Gruppen-Boxen.
Syntax
/* Keyword values */
transform: none;
/* Function values */
transform: matrix(1, 2, 3, 4, 5, 6);
transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
transform: perspective(17px);
transform: rotate(0.5turn);
transform: rotate3d(1, 2, 3, 10deg);
transform: rotateX(10deg);
transform: rotateY(10deg);
transform: rotateZ(10deg);
transform: translate(12px, 50%);
transform: translate3d(12px, 50%, 3em);
transform: translateX(2em);
transform: translateY(3in);
transform: translateZ(2px);
transform: scale(2, 0.5);
transform: scale3d(2.5, 1.2, 0.3);
transform: scaleX(2);
transform: scaleY(0.5);
transform: scaleZ(0.3);
transform: skew(30deg, 20deg);
transform: skewX(30deg);
transform: skewY(1.07rad);
/* Multiple function values */
transform: translateX(10px) rotate(10deg) translateY(5px);
transform: perspective(500px) translate3d(10px, 0, 20px) rotateY(30deg);
/* Global values */
transform: inherit;
transform: initial;
transform: revert;
transform: revert-layer;
transform: unset;
Die transform
Eigenschaft kann entweder als Schlüsselwortwert none
oder als ein oder mehrere <transform-function>
Werte angegeben werden.
Werte
<transform-function>
-
Ein oder mehrere der CSS Transform-Funktionen, die angewendet werden sollen. Die Transform-Funktionen werden in der Reihenfolge von links nach rechts multipliziert, was bedeutet, dass zusammengesetzte Transformationen effektiv in der Reihenfolge von rechts nach links angewendet werden.
none
-
Gibt an, dass keine Transformation angewendet werden soll.
Barrierefreiheit
Skalierungs-/Zoom-Animationen sind problematisch für die Barrierefreiheit, da sie ein häufiger Auslöser für bestimmte Arten von Migräne sind. Falls Sie solche Animationen auf Ihrer Website einbinden müssen, sollten Sie eine Steuerung bereitstellen, mit der Benutzer Animationen ausschalten können, vorzugsweise für die gesamte Website.
Zudem sollten Sie erwägen, die prefers-reduced-motion
Medienfunktion zu nutzen — verwenden Sie sie, um eine Media-Query zu schreiben, die Animationen ausschaltet, falls der Benutzer reduzierte Animationen in seinen Systemeinstellungen angegeben hat.
Erfahren Sie mehr:
Formale Definition
Anfangswert | none |
---|---|
Anwendbar auf | transformierbare Elemente |
Vererbt | Nein |
Prozentwerte | bezieht sich auf die Größe der äußeren Box |
Berechneter Wert | relativ zur gleichen Achse der Innenabstandsbox des Scrollcontainers |
Animationstyp | Transformation |
Erstellt Stapelkontext | Ja |
Formale Syntax
transform =
none |
<transform-list>
<transform-list> =
<transform-function>+
Beispiele
>Ein Element verschieben und drehen
HTML
<div>Transformed element</div>
CSS
div {
border: solid red;
transform: translate(30px, 20px) rotate(20deg);
width: 140px;
height: 60px;
}
Ergebnis
Transformationsreihenfolge
Die Reihenfolge der Transform-Funktionen ist wichtig. In diesem Beispiel werden zwei Boxen um die gleichen Werte gedreht und verschoben; nur die Reihenfolge der Transform-Funktion ist anders.
HTML
<div class="original"></div>
<div class="one">1</div>
<div class="two">2</div>
CSS
.one {
transform: translateX(200px) rotate(135deg);
}
.two {
transform: rotate(135deg) translateX(200px);
}
Ergebnis
Wenn ein Element gedreht wird, bevor es verschoben wird, befindet sich die Richtung der Verschiebung auf der gedrehten Achse. Die Achse wird mit den gestrichelten Linien angezeigt.
Weitere Beispiele
Bitte sehen Sie Verwenden von CSS-Transformationen und <transform-function>
für weitere Beispiele.
Spezifikationen
Specification |
---|
CSS Transforms Module Level 2> # transform-functions> |
CSS Transforms Module Level 1> # transform-property> |
Scalable Vector Graphics (SVG) 2> # TransformProperty> |
Browser-Kompatibilität
Loading…
Siehe auch
- Verwenden von CSS-Transformationen
<transform-function>
Datentyp mit allen Transformationsfunktionen erklärt.- Einzelne CSS-Eigenschaften:
translate
,rotate
, undscale
(es gibt keineskew
Eigenschaft). - SVG
transform
Attribut - Online-Tool zur Visualisierung von CSS-Transform-Funktionen: CSS Transform Playground