Anchor() - Fonction CSS
Résumé des caractéristiques de la fonction anchor()
Description de la fonction anchor().
anchor() n'est pas reconnue par tous les navigateurs. Seul et les navigateurs basés sur webkit
reconnaissent parfaitement cette fonction.
Dans un positionnement par ancrage, deux élément sont nécessaires :
- L'ancre : un élément qui a reçu un identifiant avec
anchor-name. - Un élément positionné : un élément qui est associé à l'ancre avec la propriété
position-anchor.
La fonction anchor() précise le positionnement de l'élément positionné : à gauche, à droite, etc. Elle s'utilise avec les
propriétés top, bottom, left et right ou leurs équivalents sensibles au mode d'écriture.
Elle remplace de ce point de vue la propriété position-area.
Voici un exemple de positionnement par ancrage. Sur l'échantillon de code, on n'a repris que les propriétés indispensables au positionnement.
positionné
Si vous désirez en savoir plus sur le positionnement par ancrage, nous vous invitons à consulter la page sur anchor-name qui donne la liste des
termes utiles dans ce domaine.
La valeur anchor() peut être utilisée avec les propriétés suivantes :
bottom: Définit l'espace entre le bas de l'élément (s'il est positionné) et le bas de son parent.inset: Définit la position de l'élément lorsque celui-ci est positionné autrement qu'en statique. Raccourci pourtop,right,bottometleft.inset-block: Définit l'emplacement d'un élément positionné, dans la direction des blocs. Raccourci pourinset-block-startetinset-block-end.inset-block-end: Pour un élément positionné, définit l'emplacement du côté fin de block.inset-block-start: Pour un élément positionné, définit l'emplacement du bord coté début de block.inset-inline: Définit l'emplacement d'un élément positionné dans la direction des lignes. Raccourci pourinset-inline-startetinset-inline-end.inset-inline-end: Sur un élément positionné, définit l'emplacement du bord situé en fin de ligne.inset-inline-start: Pour un élément positionné, définit l'emplacement du côté début de ligne.left: Pour un élément positionné, définit l'espace entre le bord gauche de l'élément et le bord gauche de l'élément de référence.right: Pour un élément positionné, définit l'espace entre le bord droit de l'élément et le bord droit de l'élément de référence.top: Pour un élément positionné, définit l'espace entre le haut de l'élément et le haut de l'élément de référence (parent positionné ou viewport).
Syntaxes de la fonction anchor().
- top: anchor(top);
topdéfinit la position du haut de l'élément,bottomdéfinit le bas,leftle coté gauche, et, enfin,rightle coté droit. Pour positionner un élément il faut que ses deux coordonnées soient spécifiées avec les propriétéstopoubottompour l'axe vertical etleftourightpour l'axe horizontal.
Les valeurs fournies à ces propriétés peuvent être une fonctionanchor(). Le paramètre de la fonction indique quel coté de l'ancre doit être utilisé comme référence. Sur l'exemple la coordonnées horizontale estleft:anchor(right):.Nous donnons ci-dessous un exemple avec
topetbottommais la situation serait tout à fait comparable avecleftetright.⚓top:anchor(top); left:anchor(right);top:anchor(bottom); left:anchor(right);bottom:anchor(top); left:anchor(right);bottom:anchor(bottom); left:anchor(right);Il n'est pas logique de mélanger l'axe vertical et l'axe horizontal. Écrire par exemple
top:anchor(left), bien que la syntaxe accepte ces écritures. - top: anchor(center);
La valeur
centers'adapte à l'axe nécessaire : avectopetbottomil s'agira de l'axe vertical, avecleftetrightce sera l'axe horizontal.⚓top:anchor(center); left:anchor(right);bottom:anchor(center); left:anchor(right);left:anchor(center); bottom:anchor(top);right:anchor(center);
top:anchor(bottom); - top: anchor(inside); top: anchor(outside);
Avec les valeurs
insideetoutsideon retrouve le même fonctionnement qu'avec les valeurstopetbottom.
C'est la même chose avec les autres propriétésleft,rightetbottom.⚓top:anchor(inside);
left:anchor(inside);top:anchor(outside);
left:anchor(outside); - inset-inline-start: anchor(start); inset-inline-start: anchor(end); inset-inline-start: anchor(self-start); inset-inline-start: anchor(self-end);
Ces valeurs sont sensibles au mode d'écriture en fonction de la langue :
- De l'ancre pour
startetend. - De l'élément positionné pour
self-startetself-end.
Mode d'écriture :
⚓-inset-block-start:anchor(start);
inset-inline-start:anchor(start);inset-block-start:anchor(end);
inset-inline-start:anchor(end); - De l'ancre pour
- top: anchor(20%);
Il est possible aussi d'indiquer un pourcentage. Celui-ci est calculé par rapport aux dimensions de l'ancre dans la direction considérée (horizontale pour
leftetright, verticale pourtopetbottom).⚓top:anchor(10%); left:anchor(50%);bottom:anchor(90%); left:anchor(90%); - top: anchor(--anchor top, 20%);
La syntaxe autorise de préciser l'identifiant d'une l'ancre qui n'est pas forcément l'ancre utilisé par
position-anchor. D'ailleursposition-anchordoit toujours être présente. Il est donc possible d'aligner un composant sur une autre ancre que celle qui a été définie.Sur l'exemple ci-dessous l'élément est toujours positionné suivant l'image de l'ancre, mais sa position verticale est définie par rapport à l'image de la cible.
⚓🎯top:anchor(--syntax2 top, 25%);
left:anchor(right%);Dans le cas où cet identifiant n'existe pas, le pourcentage est utilisé par rapport au premier élément positionné rencontré en remontant l'arbre. Sur l'exemple ci-dessous, l'identifiant
--absentn'a pas été défini. On utilise alors le pourcentage sur le cadre "description1".⚓top:anchor(--absent top, 25%);
left:anchor(right);id="description1"
Simulateur avec la fonction anchor().
Le simulateur définit la position verticale top, la position horizontale étant fixée à right:anchor(left);.
Texte positionnéSupport de la fonction anchor().
anchor() pour le positionnement par ancrage.Remarques :
(1) Désactivé par défaut. Peut être activé en positionnant le flag layout.css.anchor-positioning.enabled à true.
par ancrage
anchor()Navigateurs sur ordinateurs :
Navigateurs sur mobiles :
Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Opéra Mobile

QQ Browser

Baidu Browser

Samsung Internet

Chrome

Edge

Safari

Opéra

Firefox

Chrome pour Androïd

Safari sur IOS

Androïd Brower

Firefox pour Androïd

KaiOS Browser

Opéra mini
Historique de la fonction anchor().
-
Module CSS - Positionnement par ancrages - Niveau 1
Introduction dans cette spécification du positionnement par ancrage, et de la fonctionanchor().29 Juin 2023Document de travail.
Voir aussi, concernant les positionnements par ancrage.
La spécification du W3C qui définit le positionnement par ancrage est CSS Anchor Positioning. Elle décrit surtout des propriétés mais on trouve également quelques fonctions.
Propriétés :
anchor-name.position-try-fallbacks et position-try-order.position-try-fallbacks.


