translate() CSS-Funktion
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die translate() CSS Funktion repositioniert ein Element in horizontaler und/oder vertikaler Richtung. Das Ergebnis ist ein <transform-function> Datentyp.
Probieren Sie es aus
transform: translate(0);
transform: translate(42px, 18px);
transform: translate(-2.1rem, -2ex);
transform: translate(3ch, 3mm);
<section id="default-example">
<img
class="transition-all"
id="static-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
#static-element {
opacity: 0.4;
position: absolute;
}
#example-element {
position: absolute;
}
Diese Transformation wird durch einen zweidimensionalen Vektor [tx, ty] charakterisiert. Seine Koordinaten definieren, wie weit sich das Element in jeder Richtung bewegt.
Syntax
/* Single <length-percentage> values */
transform: translate(200px);
transform: translate(50%);
/* Double <length-percentage> values */
transform: translate(100px, 200px);
transform: translate(100px, 50%);
transform: translate(30%, 200px);
transform: translate(30%, 50%);
Werte
- Einzelne
<length-percentage>Werte -
Dieser Wert ist ein
<length>oder<percentage>und repräsentiert die Abszisse (horizontal, x-Komponente) des Translationsvektors [tx, 0]. Die Ordinate (vertikal, y-Komponente) des Translationsvektors wird auf0gesetzt. Zum Beispiel isttranslate(2px)gleichbedeutend mittranslate(2px, 0). Ein Prozentwert bezieht sich auf die Breite des durch dietransform-box-Eigenschaft definierten Referenzkastens. - Doppelte
<length-percentage>Werte -
Dieser Wert beschreibt zwei
<length>oder<percentage>Werte, die sowohl die Abszisse (horizontal, x-Komponente) als auch die Ordinate (vertikal, y-Komponente) des Translationsvektors [tx, ty] repräsentieren. Ein Prozentwert als erster Wert bezieht sich auf die Breite, als zweiter Teil auf die Höhe des durch dietransform-box-Eigenschaft definierten Referenzkastens.
| Kartesische Koordinaten auf ℝ^2 | Homogene Koordinaten auf ℝℙ^2 | Kartesische Koordinaten auf ℝ^3 | Homogene Koordinaten auf ℝℙ^3 |
|---|---|---|---|
|
Eine Translation ist keine lineare Transformation in ℝ^2 und kann nicht mit einer Matrix in kartesischen Koordinaten dargestellt werden. |
|
|
|
[1 0 0 1 tx ty] |
Formale Syntax
<translate()> =
translate( <length-percentage> , <length-percentage>? )
<length-percentage> =
<length> |
<percentage>
Beispiele
>Verwendung einer einachsigen Translation
HTML
<div>Static</div>
<div class="moved">Moved</div>
<div>Static</div>
CSS
div {
width: 60px;
height: 60px;
background-color: skyblue;
}
.moved {
/* Equal to: translateX(10px) or translate(10px, 0) */
transform: translate(10px);
background-color: pink;
}
Ergebnis
Kombination aus y-Achsen- und x-Achsen-Translation
HTML
<div>Static</div>
<div class="moved">Moved</div>
<div>Static</div>
CSS
div {
width: 60px;
height: 60px;
background-color: skyblue;
}
.moved {
transform: translate(10px, 10px);
background-color: pink;
}
Ergebnis
Spezifikationen
| Spezifikation |
|---|
| CSS Transforms Module Level 1> # funcdef-transform-translate> |