transform-origin
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-origin
CSS Eigenschaft legt den Ursprung für die Transformationen eines Elements fest.
Probieren Sie es aus
Der Transformationsursprung ist der Punkt, um den eine Transformation angewendet wird. Zum Beispiel ist der Transformationsursprung der Funktion rotate()
das Rotationszentrum.
Diese Eigenschaft setzt effektiv ein Paar von Übersetzungen um die anderen Transformationen des Elements herum. Die erste Übersetzung verschiebt den Transformationsursprung zum tatsächlichen Ursprung bei . Dann werden die anderen Transformationen angewendet, und da der Transformationsursprung bei liegt, wirken diese Transformationen um den Transformationsursprung herum. Schließlich wird die entgegengesetzte Übersetzung angewendet, wodurch der Transformationsursprung wieder an seinen ursprünglichen Ort verschoben wird. Folglich führt diese Definition
transform-origin: -100% 50%;
transform: rotate(45deg);
zu derselben Transformation wie
transform-origin: 0 0;
transform: translate(-100%, 50%) rotate(45deg) translate(100%, -50%);
Von rechts nach links gelesen ist translate(100%, -50%)
die Übersetzung, um den Transformationsursprung zum tatsächlichen Ursprung zu bringen, rotate(45deg)
ist die ursprüngliche Transformation, und translate(-100%, 50%)
ist die Übersetzung, um den Transformationsursprung an seinen ursprünglichen Ort zu bringen.
Standardmäßig ist der Transformationsursprung center
.
Syntax
/* One-value syntax */
transform-origin: 2px;
transform-origin: bottom;
/* x-offset | y-offset */
transform-origin: 3cm 2px;
/* x-offset-keyword | y-offset */
transform-origin: left 2px;
/* x-offset-keyword | y-offset-keyword */
transform-origin: right top;
/* y-offset-keyword | x-offset-keyword */
transform-origin: top right;
/* x-offset | y-offset | z-offset */
transform-origin: 2px 30% 10px;
/* x-offset-keyword | y-offset | z-offset */
transform-origin: left 5px -3px;
/* x-offset-keyword | y-offset-keyword | z-offset */
transform-origin: right bottom 2cm;
/* y-offset-keyword | x-offset-keyword | z-offset */
transform-origin: bottom right 2cm;
/* Global values */
transform-origin: inherit;
transform-origin: initial;
transform-origin: revert;
transform-origin: revert-layer;
transform-origin: unset;
Die transform-origin
Eigenschaft kann mit einem, zwei oder drei Werten angegeben werden, wobei jeder Wert einen Offset darstellt. Offsets, die nicht explizit definiert sind, werden auf ihre entsprechenden Anfangswerte zurückgesetzt.
Wenn ein einzelner <length>
oder <percentage>
Wert definiert ist, stellt dieser den horizontalen Offset dar.
Wenn zwei oder mehr Werte definiert sind und entweder kein Wert ein Schlüsselwort ist oder das einzige verwendete Schlüsselwort center
ist, dann repräsentiert der erste Wert den horizontalen Offset und der zweite den vertikalen Offset.
-
Ein-Wert-Syntax:
- Der Wert muss ein
<length>
, ein<percentage>
oder eines der Schlüsselwörterleft
,center
,right
,top
undbottom
sein.
- Der Wert muss ein
-
Zwei-Wert-Syntax:
- Ein Wert muss ein
<length>
, ein<percentage>
oder eines der Schlüsselwörterleft
,center
undright
sein. - Der andere Wert muss ein
<length>
, ein<percentage>
oder eines der Schlüsselwörtertop
,center
undbottom
sein.
- Ein Wert muss ein
-
Drei-Wert-Syntax:
- Die ersten beiden Werte sind die gleichen wie bei der Zwei-Wert-Syntax.
- Der dritte Wert muss ein
<length>
sein. Es repräsentiert immer den Z-Offset.
Werte
- x-offset
-
Ist ein
<length>
oder ein<percentage>
, das beschreibt, wie weit vom linken Rand der Transformationsursprung gesetzt ist. - offset-keyword
-
Ist eines der Schlüsselwörter
left
,right
,top
,bottom
odercenter
, das den entsprechenden Offset beschreibt. - y-offset
-
Ist ein
<length>
oder ein<percentage>
, das beschreibt, wie weit vom oberen Rand der Transformationsursprung gesetzt ist. - x-offset-keyword
-
Ist eines der Schlüsselwörter
left
,right
odercenter
, das beschreibt, wie weit vom linken Rand der Transformationsursprung gesetzt ist. - y-offset-keyword
-
Ist eines der Schlüsselwörter
top
,bottom
odercenter
, das beschreibt, wie weit vom oberen Rand der Transformationsursprung gesetzt ist. - z-offset
-
Ist ein
<length>
(und niemals ein<percentage>
, das die Anweisung ungültig machen würde), das beschreibt, wie weit von der Benutzeransicht der z=0 Ursprungs gesetzt ist.
Die Schlüsselwörter sind bequeme Abkürzungen und entsprechen den folgenden <percentage>
-Werten:
Schlüsselwort | Wert |
---|---|
left |
0% |
center |
50% |
right |
100% |
top |
0% |
bottom |
100% |
Formelle Definition
Initialer Wert | 50% 50% 0 |
---|---|
Anwendbar auf | transformierbare Elemente |
Vererbt | Nein |
Prozentwerte | bezieht sich auf die Größe der äußeren Box |
Berechneter Wert | for length the absolute value, otherwise a percentage |
Animationstyp | simple list of length, percentage, or calc |
Hinweis: Der Anfangswert von transform-origin
ist 0 0
für alle SVG-Elemente außer für Wurzel-<svg>
-Elemente und <svg>
-Elemente, die ein direktes Kind von einem foreignObject sind und deren transform-origin
50% 50%
ist, wie bei anderen CSS-Elementen. Siehe das SVG transform-origin-Attribut für weitere Informationen.
Formelle Syntax
transform-origin =
[ left | center | right | top | bottom | <length-percentage> ] |
[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] <length>? |
[ [ center | left | right ] && [ center | top | bottom ] ] <length>?
<length-percentage> =
<length> |
<percentage>
Beispiele
Eine Demonstration verschiedener Transformationswerte
Dieses Beispiel zeigt die Wirkung von unterschiedlichen transform-origin
Werten für eine Vielzahl von Transformationsfunktionen.
Spezifikationen
Specification |
---|
CSS Transforms Module Level 1 # transform-origin-property |
Browser-Kompatibilität
BCD tables only load in the browser