offset-position CSS property
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2024 browserübergreifend verfügbar.
Die CSS-Eigenschaft offset-position definiert die Ausgangsposition eines Elements entlang eines Pfads. Sie wird üblicherweise zusammen mit der Eigenschaft offset-path verwendet, um einen Bewegungseffekt zu erzeugen. Der Wert von offset-position bestimmt, wo das Element zu Beginn einer Bewegung entlang eines Offset-Pfads platziert wird, wenn eine offset-path-Funktion wie path() keine eigene Startposition angibt.
Die Eigenschaft offset-position ist Teil eines Bewegungssystems, das auf den zu offset gehörenden Eigenschaften basiert, darunter offset-anchor, offset-distance und offset-path. Diese Eigenschaften wirken zusammen, um verschiedene Bewegungseffekte entlang eines Pfads zu erzeugen.
Syntax
/* Keyword values */
offset-position: normal;
offset-position: auto;
offset-position: top;
offset-position: bottom;
offset-position: left;
offset-position: right;
offset-position: center;
/* <percentage> values */
offset-position: 25% 75%;
/* <length> values */
offset-position: 0 0;
offset-position: 1cm 2cm;
offset-position: 10ch 8em;
/* Edge offsets values */
offset-position: bottom 10px right 20px;
offset-position: right 3em bottom 10px;
offset-position: bottom 10px right;
offset-position: top right 10px;
/* Global values */
offset-position: inherit;
offset-position: initial;
offset-position: revert;
offset-position: revert-layer;
offset-position: unset;
Werte
normal-
Gibt an, dass das Element keine Offset-Startposition hat, und platziert es bei
50% 50%des umschließenden Blocks. Dies ist der Standardwert. auto-
Gibt an, dass die Offset-Startposition die obere linke Ecke der Elementbox ist.
<position>-
Gibt die Position als x/y-Koordinate an, um ein Element relativ zu den Rändern seiner Box zu platzieren. Die Position kann mit einem bis vier Werten definiert werden. Werden zwei Werte verwendet, die keine Schlüsselwörter sind, steht der erste für die horizontale und der zweite für die vertikale Position. Wird nur ein Wert angegeben, wird für den zweiten Wert
centerangenommen. Werden drei oder vier Werte verwendet, geben die<length-percentage>-Werte Verschiebungen relativ zu den vorangehenden Schlüsselwörtern an. Weitere Erläuterungen zu diesen Werttypen finden Sie unterbackground-position.
Formale Definition
| Anfangswert | normal |
|---|---|
| Anwendbar auf | transformierbare Elemente |
| Vererbt | Nein |
| Prozentwerte | refer to the size of containing block |
| Berechneter Wert | for <length> the absolute value, otherwise a percentage |
| Animationstyp | Position |
Formale Syntax
offset-position =
normal |
auto |
<position>
<position> =
<position-one> |
<position-two> |
<position-four>
<position-one> =
left |
center |
right |
top |
bottom |
x-start |
x-end |
y-start |
y-end |
block-start |
block-end |
inline-start |
inline-end |
<length-percentage>
<position-two> =
[ left | center | right | x-start | x-end ] && [ top | center | bottom | y-start | y-end ] |
[ left | center | right | x-start | x-end | <length-percentage> ] [ top | center | bottom | y-start | y-end | <length-percentage> ] |
[ block-start | center | block-end ] && [ inline-start | center | inline-end ] |
[ start | center | end ]{2}
<position-four> =
[ [ left | right | x-start | x-end ] <length-percentage> ] && [ [ top | bottom | y-start | y-end ] <length-percentage> ] |
[ [ block-start | block-end ] <length-percentage> ] && [ [ inline-start | inline-end ] <length-percentage> ] |
[ [ start | end ] <length-percentage> ]{2}
<length-percentage> =
<length> |
<percentage>
Beispiele
>Ausgangsposition für einen Offset-Pfad festlegen
In diesem Beispiel definiert die Eigenschaft offset-path den Pfad, entlang dessen sich das Element cyan bewegen soll. Der Wert der CSS-Funktion path() ist ein SVG-Pfad, der eine gekrümmte Linie beschreibt. Während der Animation move bewegt sich das Element entlang dieses Pfads.
HTML
<div id="wrap">
<div id="motion-demo"></div>
</div>
CSS
#motion-demo {
offset-path: path("M20,20 C20,100 200,0 200,100");
offset-position: left top;
animation: move 3000ms infinite alternate ease-in-out;
width: 40px;
height: 40px;
background: cyan;
}
@keyframes move {
0%,
20% {
offset-distance: 0%;
}
80%,
100% {
offset-distance: 100%;
}
}
Ergebnis
Verschiedene Offset-Startpositionen vergleichen
Dieses Beispiel vergleicht visuell verschiedene Offset-Startpositionen eines Elements, wenn ray() als Wert für die Eigenschaft offset-path verwendet wird. Die Zahl innerhalb der Elementbox kennzeichnet das Element, auf das CSS angewendet wird, sowie dessen Ankerpunkt.
.box {
background-color: green;
border-top: 6px dashed white;
background-clip: border-box;
position: absolute;
top: 20px;
left: 20px;
opacity: 20%;
color: white;
}
.box0 {
offset-position: normal;
}
.box1 {
offset-position: normal;
offset-path: ray(0deg);
}
.box2 {
offset-position: auto;
offset-path: ray(0deg);
}
.box3 {
offset-position: left top;
offset-path: ray(0deg);
}
.box4 {
offset-position: 30% 70%;
offset-path: ray(120deg);
}
Ergebnis
Bei box0 hat offset-position mit dem Wert normal oder auto keine Wirkung, da die Eigenschaft offset-path fehlt. Wenn offset-position den Wert normal hat, beginnt der Strahl in der Mitte des umschließenden Blocks (also bei 50% 50%). Dies ist die standardmäßige Startposition eines Offset-Pfads und wird verwendet, wenn kein offset-position angegeben ist. Beachten Sie den Unterschied zwischen den Offset-Startpositionen auto und left top: Der Wert auto richtet den Ankerpunkt des Elements an dessen eigener oberer linker Ecke aus, während left top ihn an der oberen linken Ecke des umschließenden Blocks ausrichtet.
Spezifikationen
| Spezifikation |
|---|
| Motion Path Module Level 1> # offset-position-property> |