translate()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Die translate()
CSS Funktion positioniert ein Element in horizontaler und/oder vertikaler Richtung neu. Ihr 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, um wie viel 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
- Einzeln
<length-percentage>
Werte -
Dieser Wert ist ein
<length>
oder<percentage>
und steht für die Abszisse (horizontal, x-Komponente) des Verschiebungsvektors [tx, 0]. Die Ordinate (vertikal, y-Komponente) des Verschiebungsvektors wird auf0
gesetzt. Zum Beispiel entsprichttranslate(2px)
dem Werttranslate(2px, 0)
. Ein Prozentwert bezieht sich auf die Breite der durch dietransform-box
Eigenschaft definierten Referenzbox. - Doppelt
<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 Verschiebungsvektors [tx, ty] darstellen. Ein Prozentsatz als erster Wert bezieht sich auf die Breite, als zweiter Teil auf die Höhe der durch dietransform-box
Eigenschaft definierten Referenzbox.
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 mittels einer kartesischen Koordinatenmatrix dargestellt werden. |
|
|
|
[1 0 0 1 tx ty] |
Formale Syntax
<translate()> =
translate( <length-percentage> , <length-percentage>? )
<length-percentage> =
<length> |
<percentage>
Beispiele
>Verwendung einer Ein-Achsen-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 von Translationen auf der y- und x-Achse
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
Specification |
---|
CSS Transforms Module Level 1> # funcdef-transform-translate> |
Browser-Kompatibilität
Loading…