offset-anchor

Baseline 2023

Newly available

Since August 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Expérimental: Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété CSS offset-anchor définit le point, à l'intérieur d'une boîte d'un élément, qui se déplace le long d'un chemin offset-path.

Syntaxe

css
/* Valeurs avec un movalues */
offset-anchor: top;
offset-anchor: bottom;
offset-anchor: left;
offset-anchor: right;
offset-anchor: center;
offset-anchor: auto;

/* Valeurs de pourcentages */
/* Type <percentage> */
offset-anchor: 25% 75%;

/* Valeurs de longueur */
/* Type <length> */
offset-anchor: 0 0;
offset-anchor: 1cm 2cm;
offset-anchor: 10ch 8em;

/* Valeurs de décalage relatives à un bord */
offset-anchor: bottom 10px right 20px;
offset-anchor: right 3em bottom 10px;

/* Valeurs globales */
offset-anchor: inherit;
offset-anchor: initial;
offset-anchor: unset;

Valeurs

auto

offset-anchor reçoit la même valeur que transform-origin sauf si offset-path vaut none, dans ce cas, elle récupère la valeur de offset-position.

<position>

Une position (<position>) définie par un couple de coordonnées X/Y qui permet de placer un objet par rapport aux bords de sa boîte. On peut définir la position à partir de une à quatre valeurs. Pour plus d'informations, voir les pages sur <position> et background-position. La syntaxe à trois valeurs ne fonctionne pas pour <position>, excepté pour background(-position).

Définition formelle

Valeur initialeauto
Applicabilitééléments transformables
Héritéenon
Pourcentagesrelative to the width and the height of the element's reference box
Valeur calculéepour une valeur de type length sa valeur absolue, sinon un pourcentage
Type d'animationune position

Syntaxe formelle

offset-anchor = 
auto |
<position>

<position> =
[ left | center | right | top | bottom | <length-percentage> ] |
[ left | center | right ] && [ top | center | bottom ] |
[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] |
[ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]

<length-percentage> =
<length> |
<percentage>

Exemples

Dans l'exemple suivant, on dispose de trois éléments <div> imbriqués chacun dans un élément <section>. Chaque <div> se déplace sur le même chemin offset-path (une ligne horizontale mesurant 200 pixels). Les trois blocs possèdent une couleur (background-color) et une valeur offset-anchor différentes.

Chaque élément <section> a été mise en forme avec un dégradé linéaire afin de fournir une indication visuelle du chemin.

On peut voir que la première valeur, auto, déplace l'élément sur son centre. La deuxième et la troisième déplacent le <div> par le coin supérieur droit et le coin inférieur gauche respectivement.

HTML

html
<section>
  <div class="offset-anchor1"></div>
</section>
<section>
  <div class="offset-anchor2"></div>
</section>
<section>
  <div class="offset-anchor3"></div>
</section>

CSS

css
div {
  offset-path: path("M 0,20 L 200,20");
  animation: move 3000ms infinite alternate ease-in-out;
  width: 40px;
  height: 40px;
}

section {
  background-image: linear-gradient(
    to bottom,
    transparent,
    transparent 49%,
    #000 50%,
    #000 51%,
    transparent 52%
  );
  border: 1px solid #ccc;
  margin-bottom: 10px;
}

.offset-anchor1 {
  offset-anchor: auto;
  background: cyan;
}

.offset-anchor2 {
  offset-anchor: right top;
  background: purple;
}

.offset-anchor3 {
  offset-anchor: left bottom;
  background: magenta;
}

@keyframes move {
  0% {
    offset-distance: 0%;
  }
  100% {
    offset-distance: 100%;
  }
}

Résultat

Spécifications

Specification
Motion Path Module Level 1
# offset-anchor-property

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi