Auparavant, styliser tous les éléments dans un conteneur, sauf celui qui planait, impliquait souvent JavaScript. Cela signifiait généralement ajouter ou supprimer des classes sur les événements mouseenter
et mouseleave
. Bien que fonctionnel, une solution CSS pure est souvent préférable. Cet article détaille une approche uniquement du CSS, initialement inspirée par les techniques utilisées pour recréer des animations comme la page d'accueil de Netflix. Cependant, une tentative précédente utilisant cette méthode a échoué sur une disposition basée sur la grille en raison des lacunes entre les éléments. Cet article présente une solution qui gère élégamment ces lacunes.
Marquage et CSS de base
Le HTML fondamental utilise une liste basée sur la grille:
-
.grid
: la grille de conteneur. -
.grid__child
: éléments de grille individuels.
Le balisage est le suivant:
Le CSS initial styles la grille et ses enfants:
.grid { display: grid; grid-template-columns: repeat(auto-fit, 15rem); grid-gap: 1rem; } .grid__child { background: rgba(0, 0, 0, .1); border-radius: .5rem; aspect-ratio: 1/1; }
Cela crée une grille à trois colonnes (ajustant dynamiquement en fonction de la taille de l'écran) avec un écart entre les éléments.
Tire en tirant des sélecteurs CSS
L'interaction centrale implique deux étapes:
- Le plan de planage du conteneur affecte tous les enfants.
- L'enfant plané lui-même est exclu.
Tout d'abord, nous ciblons tous les enfants lorsque le récipient est plané:
.grid:hover .grid__child { /* ... */ }
Ensuite, nous excluons l'enfant actuellement plané en utilisant :not(:hover)
pour réduire l'opacité:
.grid:hover .grid__child:not(:hover) { opacity: 0.3; }
Cela fonctionne parfaitement sans lacunes entre les éléments. Cependant, avec les lacunes, l'effet se déclenche même lorsque le curseur est sur l'écart lui-même.
Additionner les lacunes
La solution réside dans le contrôle des événements du pointeur. En réglant pointer-events: none
sur le conteneur .grid
et pointer-events: auto
sur ses enfants, nous nous assurons que l'effet de survol ne se déclenche directement sur un élément enfant, ignorant efficacement les lacunes.
.grid { /* ... */ pointer-events: none; } .grid__child { /* ... */ pointer-events: auto; }
L'ajout d'une transition pour les modifications d'opacité plus lisses termine l'effet.
Le CSS final incorporant cette solution est:
.grid { display: grid; grid-template-columns: repeat(auto-fit, 15rem); grid-gap: 3rem; pointer-events: none; } .grid:hover .grid__child:not(:hover) { opacity: 0.3; } .grid__child { background: rgba(0, 0, 0, .1); border-radius: .5rem; aspect-ratio: 1/1; pointer-events: auto; transition: opacity 300ms; }
limitations potentielles
Bien que efficace, cette approche peut nécessiter des ajustements pour les conteneurs défiles (par exemple, les curseurs horizontaux). Dans de tels cas, envelopper le .grid
dans un autre conteneur peut être une solution de contournement.
Conclusion
Cela démontre une puissante solution CSS pure pour un défi d'interaction commun. En tirant parti des sélecteurs CSS avancés et du contrôle des événements de pointeur, nous réalisons un effet sophistiqué sans recourir à JavaScript, conduisant à un code plus propre et plus maintenable. Cela met en évidence les capacités croissantes du CSS et encourage l'exploration de solutions natives avant d'ajouter la complexité JavaScript.
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!

Le choix de Flexbox ou de la grille dépend des exigences de mise en page: 1) Flexbox convient aux dispositions unidimensionnelles, telles que la barre de navigation; 2) La grille convient aux dispositions bidimensionnelles, telles que les dispositions de magazines. Les deux peuvent être utilisés dans le projet pour améliorer l'effet de mise en page.

La meilleure façon d'inclure des fichiers CSS est d'utiliser des balises pour introduire des fichiers CSS externes dans la pièce HTML. 1. Utilisez des balises pour introduire des fichiers CSS externes, tels que. 2. Pour les petits ajustements, le CSS en ligne peut être utilisé, mais doit être utilisé avec prudence. 3. Les grands projets peuvent utiliser des préprocesseurs CSS tels que SASS ou moins pour importer d'autres fichiers CSS via @Import. 4. Pour les performances, les fichiers CSS doivent être fusionnés et CDN doit être utilisé et compressé à l'aide d'outils tels que CSSNANO.

Oui, vous émeuble-chouchoudion-dimensionnal, flexiblelayAndavigationMenus.2)

À quoi cela ressemble-t-il de refactor votre propre code? John Rhea sépare une vieille animation CSS qu'il a écrite et traverse le processus de réflexion pour l'optimiser.

CSSANIMATIONSARENOTINÉMENT HAUTS BUTREQUIREPRACTICIT ENCRIPTION DES PROFESSIONS DESPROPERTIES ET TROUVEMENT

@ KeyframeSispopulardUetOtsSversatity andpowerCreatingsMoothcSSanimations.KeyTrickSinclude: 1) DefiingsMoothTransitionsBetwean

CSSCOUNTERSAREUSEUSTTOMAGAUTAMAMATALUMENTSINDWEBDESIGNS.1) Ils ont été des cas de contenu, des listitems et de la forme.

L'utilisation d'ombres de défilement, en particulier pour les appareils mobiles, est un peu de UX subtil que Chris a couvert auparavant. Geoff a couvert une approche plus récente qui utilise la propriété d'animation-timeline. Voici encore une autre façon.


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

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver Mac
Outils de développement Web visuel

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.

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !
