Je crois que vous avez entendu parler de la fonction de positionnement du point d'ancrage CSS, non? Cette fonctionnalité vous permet de lier n'importe quel élément de la page à un autre élément, le point d'ancrage. Il est très utile pour toutes les infractions, mais il crée également de nombreux autres bons résultats.
Cet article étudiera la navigation au menu, et je compte sur le positionnement de l'ancrage pour créer d'excellents effets de survol sur les liens.
C'est cool, non? Nous avons un effet glissant, le rectangle bleu s'adapte parfaitement au contenu du texte par une transition en douceur. Si vous n'êtes pas familier avec le positionnement de l'ancrage, cet exemple est parfait pour vous car il est simple et vous donnera les bases de cette nouvelle fonctionnalité. Nous apprendrons un autre exemple, alors restez à la fin!
Notez qu'à ce jour, seuls les navigateurs à base de chrome prennent entièrement le positionnement de l'ancrage. Avant que les autres navigateurs puissent prendre en charge cette fonctionnalité plus largement, vous devez afficher la démo dans les navigateurs comme Chrome ou Edge.
Commençons par la structure HTML, qui n'est qu'un élément NAV contenant une liste de liens non ordonnée:
<nav><ul> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Home</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">About</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Projects</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Blog</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Contact</a></li> </ul></nav>
Nous ne passerons pas beaucoup de temps à expliquer cette structure, car elle peut également être différente si vos cas d'utilisation sont différents. Assurez-vous simplement que la sémantique est liée à ce que vous essayez de faire. Quant à la section CSS, nous commencerons avec quelques styles de base pour créer une navigation de menu horizontale.
ul { padding: 0; margin: 0; list-style: none; display: flex; gap: .5rem; font-size: 2.2rem; } ul li a { color: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b000; text-decoration: none; font-weight: 900; line-height: 1.5; padding-inline: .2em; display: block; }
Jusqu'à présent, rien de spécial. Nous avons supprimé certains styles par défaut et utilisé Flexbox pour aligner les éléments horizontalement.
Effet coulissant
Tout d'abord, comprenons comment fonctionne l'effet. À première vue, il semble que nous ayons un rectangle qui se rétrécit à une très petite hauteur, se déplace vers un élément de volants, puis atteint une hauteur. C'est l'effet visuel, mais en réalité, plusieurs éléments sont impliqués!
C'est ma première démonstration, et j'utilise différentes couleurs pour mieux comprendre ce qui se passe.
Chaque élément de menu a son propre "élément" qui peut rétrécir ou se développer. Ensuite, nous avons un "élément" commun (celui en rouge) qui glisse entre différents éléments de menu. Le premier effet est fait en utilisant l'animation d'arrière-plan, et le deuxième effet est l'endroit où le positionnement du point d'ancrage entre en jeu!
Animation d'arrière-plan
Pour la première partie, nous animerons la hauteur du gradient CSS:
/* 1 */ ul li { background: conic-gradient(lightblue 0 0) bottom/100% 0% no-repeat; transition: .2s; } /* 2 */ ul li:is(:hover,.active) { background-size: 100% 100%; transition: .2s .2s; } /* 3 */ ul:has(li:hover) li.active:not(:hover) { background-size: 100% 0%; transition: .2s; }
Nous définissons un dégradé avec une largeur de 100% et une hauteur de 0% en bas. La syntaxe de gradient peut être bizarre, mais c'est la syntaxe la plus courte qui me permet d'avoir un gradient monochrome.
lié: "Comment définir correctement le gradient monochrome"
Ensuite, si l'élément de menu est plané ou a une classe .cactive, nous définissons la hauteur à 100%. Veuillez noter l'utilisation des retards ici pour vous assurer que la croissance se produit après le retrait.
Enfin, nous devons faire face à des cas spéciaux d'articles. Si nous planons un élément (et non l'élément actif), l'élément .active obtiendra un effet rétrécissant (la hauteur du gradient est égale à 0%). C'est ce que fait le troisième sélecteur du code.
Notre première animation est terminée! Notez comment la croissance commence une fois la contraction terminée en raison du retard que nous avons défini dans le deuxième sélecteur. ANCHOR POSITIONNEMENT ANIMENTATION
La première animation est très facile car chaque projet a sa propre animation d'arrière-plan, ce qui signifie que nous n'avons pas à nous soucier du contenu texte, car l'arrière-plan remplit automatiquement l'espace entier.
Nous utiliserons un élément pour effectuer une deuxième animation qui glisse entre tous les éléments de menu tout en ajustant sa largeur pour s'adapter au texte de chaque élément. C'est là que le positionnement de l'ancrage peut nous aider.
Commençons par le code suivant:
Pour éviter d'ajouter des éléments supplémentaires, je préfère utiliser des pseudo-éléments sur UL. Il devrait être absolument positionné et nous compterons sur deux propriétés pour activer le positionnement de l'ancrage.
<nav><ul> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Home</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">About</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Projects</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Blog</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Contact</a></li> </ul></nav>
Nous utilisons l'attribut de nom d'ancrage pour définir le point d'ancrage. Lorsqu'un élément de menu est survolé ou a une classe .cactive, elle devient un élément d'ancrage. Si un autre élément oscille, nous devons également supprimer le point d'ancrage de l'élément .cactif (donc, le dernier sélecteur du code). En d'autres termes, un seul point d'ancrage est défini à la fois.
Ensuite, nous utilisons l'attribut de position de position pour lier le pseudo-élément au point d'ancrage. Notez comment les deux utilisent la même notation - li. Ceci est similaire, par exemple, à la façon dont nous définissons @keyframes avec un nom spécifique, puis l'utilisons dans la propriété d'animation. N'oubliez pas que vous devez utiliser la syntaxe
, ce qui signifie que le nom doit toujours commencer par deux tirets (-).
L'attribut de hauteur
est simple, mais Anchor () est un nouveau membre. Voici ce que Juan Diego le décrit dans Almanac:ul { padding: 0; margin: 0; list-style: none; display: flex; gap: .5rem; font-size: 2.2rem; } ul li a { color: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b000; text-decoration: none; font-weight: 900; line-height: 1.5; padding-inline: .2em; display: block; }
La fonction
CSS Anchor () prend un côté de l'élément d'ancrage et l'analyse dans sonpositionné. Il ne peut être utilisé que pour les propriétés en ligne (comme le haut, le bas, le bas, la gauche, la droite, etc.), et est généralement utilisé pour placer des éléments absolument positionnés par rapport au point d'ancrage.Vérifions également la page MDN:
anchor () La fonction CSS peut être utilisée dans la valeur d'attribut intégrée de l'élément de positionnement de l'ancrage, renvoyant la valeur de longueur relative à sa position de bord d'élément d'ancrage associée.
Habituellement, nous utilisons à gauche: 0 pour placer l'élément absolu sur le bord gauche de son bloc contenant (c'est-à-dire l'ancêtre le plus proche avec position: relative). À gauche: l'ancre (à gauche) fera de même, mais il prendra en compte l'élément d'ancrage associé au lieu de contenir des blocs.
c'est tout - nous avons fini! Survolez les éléments du menu dans la démo ci-dessous pour voir comment les pseudo-éléments glissent entre eux.
Chaque fois que vous survolez votre souris sur un élément de menu, il devient une nouvelle ancre pour le pseudo-élément (UL: avant). Cela signifie également que la valeur de l'ancre (...) changera, ce qui entraînera un effet coulissant! N'oublions pas d'utiliser la transition ou nous aurons un changement soudain.
Nous pouvons également écrire du code comme ceci:
<nav><ul> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Home</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">About</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Projects</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Blog</a></li> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Contact</a></li> </ul></nav>
En d'autres termes, au lieu d'utiliser des propriétés physiques telles que la gauche, la droite et le bas, nous pouvons compter sur l'abréviation de l'encart, et au lieu de définir la position de position, nous pouvons inclure le nom de l'ancrage dans la fonction Anchor (). Nous avons répété le même nom trois fois ici, ce qui n'est peut-être pas la meilleure option, mais dans certains cas, vous voudrez peut-être que votre élément envisage plusieurs ancres, auquel cas cette syntaxe aura un sens.
combinant deux effets
Maintenant, nous combinons les deux effets, void , l'hallucination est parfaite!
Veuillez noter la valeur de transition, où le retard est important:
ul { padding: 0; margin: 0; list-style: none; display: flex; gap: .5rem; font-size: 2.2rem; } ul li a { color: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b000; text-decoration: none; font-weight: 900; line-height: 1.5; padding-inline: .2em; display: block; }
Nous avons une série de trois animations - réduisez la hauteur du gradient, faites glisser les pseudo-éléments et augmenter la hauteur du gradient - nous devons donc fixer un retard entre eux pour tout rassembler. C'est pourquoi pour les diapositives de pseudo-éléments, nous avons un retard égal à une durée d'animation (transition: .2.2s), tandis que pour la partie de croissance, le retard équivaut à deux fois la durée (transition: .2s.4s).
Effet de rebond? pourquoi pas? !
Essayons une autre animation étrange où le rectangle mis en évidence se déforme en petit cercle, saute vers l'élément suivant, puis se déforme à nouveau dans le rectangle!
Je n'expliquerai pas trop cet exemple, car ce sont vos devoirs pour analyser le code! Je vais fournir quelques conseils pour que vous puissiez déballer ce qui se passe.
Comme avec l'effet précédent, nous avons combiné deux animations. Pour le premier, j'utiliserai les pseudo-éléments de chaque élément de menu, je redimensionnerai et Border-Radius pour simuler la déformation. Pour la deuxième animation, je vais créer un petit cercle en utilisant le pseudo-élément ul, que je déplace entre les éléments de menu.
Il s'agit d'une autre version de la démo, différentes couleurs et des transitions plus lentes pour mieux visualiser chaque animation:
La partie délicate est l'effet de saut, j'ai utilisé un bizarre cubique-Bezier (), mais j'ai un article détaillé expliquant cette technique dans mon article de CSS-Tricks "Advanced CSS Animation Using Cumbic-Bezier ()".
Conclusion
J'espère que vous avez apprécié cette petite expérience en utilisant la fonction de positionnement de l'ancrage. Nous n'avons examiné que trois propriétés / valeurs, mais cela suffit pour vous préparer à utiliser cette nouvelle fonctionnalité. Les attributs de nom d'ancrage et de position de position sont des pièces obligatoires qui relient un élément (généralement appelé élément "cible" dans ce contexte) à un autre élément (nous appelons l'élément "ancre" dans ce contexte). De là, vous pouvez utiliser la fonction Anchor () pour contrôler la position.
lié: Guide de points de points d'ancrage CSS
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!

Dans cet article, Blackle Mori vous montre quelques-uns des hacks trouvés tout en essayant de repousser les limites du support HTML de Cohost. Utilisez-les si vous osez, de peur que vous soyez également étiqueté un criminel CSS.

Les curseurs personnalisés avec CSS sont excellents, mais nous pouvons faire passer les choses au niveau supérieur avec JavaScript. À l'aide de JavaScript, nous pouvons passer entre les états du curseur, placer du texte dynamique dans le curseur, appliquer des animations complexes et appliquer des filtres.

Les animations CSS interactives avec des éléments se ricochent semblent plus plausibles en 2025. Bien qu'il soit inutile de mettre en œuvre Pong dans CSS, la flexibilité et la puissance croissantes de CSS renforcent le soupçon de Lee selon lequel un jour, ce sera un jour

Conseils et astuces sur l'utilisation de la propriété CSS Back-Filter pour styliser les interfaces utilisateur. Vous apprendrez à superposer des filtres en toile de fond entre plusieurs éléments et à les intégrer à d'autres effets graphiques CSS pour créer des conceptions élaborées.

Eh bien, il s'avère que les fonctionnalités d'animation intégrées de SVG n'ont jamais été obsolètes comme prévu. Bien sûr, CSS et JavaScript sont plus que capables de porter la charge, mais il est bon de savoir que Smil n'est pas mort dans l'eau comme précédemment

Yay, laissez-le saut pour le wat-wrap: joli atterrissage dans la technologie safari aperçu! Mais méfiez-vous qu'il est différent de la façon dont il fonctionne dans les navigateurs de chrome.

Cette mise à jour de CSS-Tricks met en évidence des progrès significatifs dans l'Almanac, des apparitions de podcast récentes, un nouveau guide CSS Counter et l'ajout de plusieurs nouveaux auteurs contribuant un contenu précieux.

La plupart du temps, les gens présentent la fonctionnalité de Tailwind avec l'un des utilitaires à propriété unique de Tailwind (qui modifie une seule déclaration CSS). Lorsqu'il est présenté de cette façon, @Apply ne semble pas du tout prometteur. So évidence


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

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.

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft
