Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

css
/* 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 center angenommen. 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 unter background-position.

Formale Definition

Anfangswertnormal
Anwendbar auftransformierbare Elemente
VererbtNein
Prozentwerterefer to the size of containing block
Berechneter Wertfor <length> the absolute value, otherwise a percentage
AnimationstypPosition

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

html
<div id="wrap">
  <div id="motion-demo"></div>
</div>

CSS

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.

css
.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

Browser-Kompatibilität

Siehe auch