recherche
Maisoninterface Webtutoriel CSSUne de ces interfaces utilisateurs 'intégrés', avec positionnement d'ancrage

One of Those

Plongez dans le monde fascinant du positionnement de l'ancrage CSS! Ce tutoriel explore cette fonctionnalité CSS innovante, en utilisant le "Guide de positionnement d'ancrage" de Juan Diego Rodriguez (disponible sur CSS-Tricks) comme référence.

Il s'agit d'un développement passionnant. Beaucoup se souviendront de l'impact du "Guide de mise en page Flexbox" de CSS-Tricks et du "Guide de mise en page" - des ressources inestimables que j'utilise toujours régulièrement! Je jongle souvent sur plusieurs onglets pour assurer une syntaxe correcte dans mes expériences de codepen.

Depuis le guide de Juan, j'ai expérimenté le positionnement de l'ancrage CSS, et je suis impatient de partager mes résultats, d'apprendre plus, d'expérimenter plus loin et, bien sûr, construire des choses!

Présentation du positionnement de l'ancrage CSS

Le positionnement de l'ancrage nous permet de nous connecter - ou "ancre" - un élément à un ou plusieurs autres. Surtout, il définit comment un élément "cible" (l'élément attaché à une ancre) est positionné par rapport à l'ancre, y compris positionnement de secours via le @position-try at-rule.

En termes simples, le positionnement de l'ancrage améliore considérablement position: absolute;, en aidant les éléments absolument positionnés se comporter de manière prévisible. Nous explorerons cela en détail.

Actuellement une spécification de projet W3C, le positionnement de l'ancrage est relativement nouveau. Il est marqué "Disponibilité limitée" dans la ligne de base, ce qui signifie qu'il est principalement pris en charge par les navigateurs à base de chrome (version 125). Cependant, Oddbird fournit un polyfill utile pour une compatibilité plus large du navigateur.

Les détails de la prise en charge du navigateur sont disponibles sur caniuse.com. Un nombre indique la version où le support commence.

Prise en charge du navigateur de bureau

Prise en charge du navigateur mobile / tablette

Oddbird crée des polyfills pour de nombreuses nouvelles fonctionnalités CSS. Soutenez leur travail sur Github ou Open Collective!

TAB Atkins-Bittner, contributeur à la spécification W3C, a présenté le positionnement de l'ancrage au CSS Day 2024 (vidéo disponible sur YouTube). Juan a démontré son utilisation avec des animations axées sur la vue pour un effet de notes flottantes sur CSS-Tricks. Kevin Powell a présenté "CSS Popover Anchor Positioning" dans une vidéo récente, et Thomas Park a créé Anchoreum (un jeu de style Flexbox Froggy) pour enseigner le positionnement de l'ancrage.

l'affectation

Maintenant que nous comprenons le positionnement de l'ancrage CSS, explorons sa fonctionnalité. Les éléments d'attache offrent un immense potentiel, résolvant de nombreux problèmes précédemment résolus avec un positionnement absolu complexe et z-index ajustements.

Examinons la syntaxe de base. Nous avons besoin de deux éléments: un élément positionné ancre et sa cible attachée.

<div>
  Anchor
</div>
<div>
  Target
</div>

Nous désignons un élément positionné d'ancrage en utilisant anchor-name, un nom unique (préfixé avec des tirets doubles, comme les propriétés personnalisées CSS).

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15banchor {
  anchor-name: --anchor;
}

L'élément cible nécessite position: absolute; et position-anchor (correspondant à l'ancre anchor-name).

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15banchor {
  anchor-name: --anchor;
}

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15btarget {
  position: absolute;
  position-anchor: --anchor;
}

Ces éléments sont désormais liés. position-area crée une grille 3x3 invisible sur l'élément d'ancrage, permettant un placement cible précis.

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15btarget {
  position: absolute;
  position-anchor: --anchor;
  position-area: top center;
}

La cible est désormais ancrée au centre supérieur de l'élément d'ancrage!

ancrage pseudo-éléments

Les pseudo-éléments peuvent être ancrés comme des éléments réguliers:

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15banchor {
  anchor-name: --anchor;

  &::before {
    content: "Target";
    position: absolute;
    position-anchor: --anchor;
    left: anchor(center);
    bottom: anchor(center);
  }
}

Ceci est utile pour ajouter des améliorations visuelles ou des indicateurs.

ancres en mouvement

Les ancres peuvent être repositionnées à l'aide de fonctions anchor() au lieu de position-area.

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15btarget {
  position: absolute;
  position-anchor: --anchor-one;
  top: anchor(bottom);
  left: anchor(left);
}
Les fonctions

anchor() utilisent les valeurs calculées de l'élément d'ancrage. Ici, le top de la cible correspond au bottom de l'ancre. Les changements de volant position-anchor et des transitions lisses sont possibles.

Expériences avancées

L'équipe Chrome a publié de nouveaux pseudo-sélectionneurs pour les éléments <details></details> et <summary></summary> (:details-content). Ceux-ci peuvent également être ancrés. Ceci est expérimental mais démontre le potentiel.

Applications pratiques

Explorons les utilisations pratiques du positionnement de l'ancrage CSS (actuellement chrome uniquement).

Info-bullets

Les infractions sont un ajustement naturel. Faire planer sur une icône affiche une étiquette à proximité. L'article de Zell Liew sur les meilleures pratiques de l'infraction fournit des conseils sémantiques.

<button id="inbox-tool" class="tool" aria-labelledby="inbox-label">
  <svg></svg>
</button>
<div id="inbox-label" role="tooltip">Inbox</div>

L'infiltron est un frère ou une sœur de l'élément d'ancrage (aria-labelledby les relie). CSS gère le positionnement et la visibilité.

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15binbox-tool {
  anchor-name: --inbox-tool;
}

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15binbox-label {
  position: absolute;
  position-anchor: --inbox-tool;
  position-area: end center;
  visibility: hidden;
}

.tool:hover + [role="tooltip"],
.tool:focus-visible + [role="tooltip"] {
  visibility: visible;
}

Une info-bulle ancrée CSS fonctionnelle! Considérez les toggletips pour les appareils tactiles.

Divulgations flottantes

Les divulgations (comme

/<summary></summary>
) bénéficient du positionnement de l'ancrage, en particulier pour les éléments flottants. L'API Popover fournit une solution non modale et supérieure avec des fonctionnalités telles que des licenciements légers. Zell Liew offre plus d'informations sur les popovers, les dialogues et la modalité.

Un exemple de menu déroulant:

<div>
  Anchor
</div>
<div>
  Target
</div>

CSS gère l'ancrage et le positionnement de l'ancrage:

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15banchor {
  anchor-name: --anchor;
}

Composant de panier d'achat

En combinant les techniques précédentes, nous pouvons créer un composant de panier:

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15banchor {
  anchor-name: --anchor;
}

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15btarget {
  position: absolute;
  position-anchor: --anchor;
}

CSS ancre la boîte à petit, la boîte de dialogue de panier et le badge:

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15btarget {
  position: absolute;
  position-anchor: --anchor;
  position-area: top center;
}

Trois éléments ancrés à une seule ancre!

combinant des techniques

Cette section présente l'utilisation combinée des infractions, des divulgations et des badges, démontrant la puissance du positionnement de l'ancrage.

Projet final: outil d'intégration

En tant que projet final, j'ai construit un outil d'intégration positionné par l'ancrage CSS (CodePen disponible). Cela évite les complexités de ma précédente tentative basée sur JavaScript ("HandholdJS").

Un élément personnalisé <hand-hold></hand-hold> utilise data-tour-stop attributs pour définir les étapes de la tournée. JavaScript met à jour dynamiquement les positions d'ancrage et une transition de vue assure des transitions en douceur. Ce projet est expérimental et non prêt pour la production en raison d'un support limité du navigateur.

Conclusion

Le positionnement de l'ancrage CSS a le potentiel de révolutionner le développement de CSS, similaire à Flexbox et Grid. Ses applications sont vastes, et je suis ravi de voir les innovations futures de la communauté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Quelle est la spécificité de @rules, comme @keyframes et @media?Quelle est la spécificité de @rules, comme @keyframes et @media?Apr 18, 2025 am 11:34 AM

J'ai eu cette question l'autre jour. Ma première pensée est: une question étrange! La spécificité concerne les sélecteurs, et les rubriques ne sont pas des sélecteurs, donc ... non pertinents?

Pouvez-vous nist @media et @Support Queries?Pouvez-vous nist @media et @Support Queries?Apr 18, 2025 am 11:32 AM

Oui, vous le pouvez, et cela n'a pas vraiment d'importance dans quel ordre. Un préprocesseur CSS n'est pas requis. Il fonctionne dans CSS ordinaire.

Buste de cache de gorgée rapideBuste de cache de gorgée rapideApr 18, 2025 am 11:23 AM

Vous devriez à coup sûr définir des en-têtes de cache éloignés sur vos actifs comme CSS et JavaScript (et des images et polices et quoi que ce soit d'autre). Cela dit au navigateur

À la recherche d'une pile qui surveille la qualité et la complexité de CSSÀ la recherche d'une pile qui surveille la qualité et la complexité de CSSApr 18, 2025 am 11:22 AM

De nombreux développeurs écrivent sur la façon de maintenir une base de code CSS, mais peu d'entre eux écrivent sur la façon dont ils mesurent la qualité de cette base de code. Bien sûr, nous avons

Le datalist est destiné à suggérer des valeurs sans appliquer de valeursLe datalist est destiné à suggérer des valeurs sans appliquer de valeursApr 18, 2025 am 11:08 AM

Avez-vous déjà eu un formulaire qui devait accepter un petit texte arbitraire? Comme un nom ou autre chose. C'est exactement à quoi sert. Il y a beaucoup de

Conférence avant à ZurichConférence avant à ZurichApr 18, 2025 am 11:03 AM

Je suis tellement excité de me diriger vers Zurich, en Suisse pour la conférence de Front (j'adore ce nom et URL!). Je n'ai jamais été en Suisse auparavant, donc je suis excité

Construire une application sans serveur complète avec des travailleurs CloudFlareConstruire une application sans serveur complète avec des travailleurs CloudFlareApr 18, 2025 am 10:58 AM

L'un de mes développements préférés dans le développement de logiciels a été l'avènement de Serverless. En tant que développeur qui a tendance à s'enliser dans les détails

Création de routes dynamiques dans une application NuxtCréation de routes dynamiques dans une application NuxtApr 18, 2025 am 10:53 AM

Dans cet article, nous utiliserons une démo de magasin de commerce électronique que j'ai construit et déployé sur Netlify pour montrer comment nous pouvons faire des itinéraires dynamiques pour les données entrantes. C'est assez

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit