offset-anchor
Baseline 2022
Newly available
Since September 2022, 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
/* 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 quetransform-origin
sauf sioffset-path
vautnone
, dans ce cas, elle récupère la valeur deoffset-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>
etbackground-position
. La syntaxe à trois valeurs ne fonctionne pas pour<position>
, excepté pourbackground(-position)
.
Définition formelle
Valeur initiale | auto |
---|---|
Applicabilité | éléments transformables |
Héritée | non |
Pourcentages | relative to the width and the height of the element's reference box |
Valeur calculée | pour une valeur de type <length> sa valeur absolue, sinon un pourcentage |
Type d'animation | une 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
<section>
<div class="offset-anchor1"></div>
</section>
<section>
<div class="offset-anchor2"></div>
</section>
<section>
<div class="offset-anchor3"></div>
</section>
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