Gestion des états Tailwind CSS
Tailwind CSS fournit de puissantes classes d'état (modificateurs d'état) pour contrôler les changements de style des éléments dans différents états d'interaction.
Tailwind CSS fournit une variété de classes d'état (telles que hover:, focus:, active:, etc.) pour aider les développeurs à gérer rapidement les effets d'interaction. En combinant ces classes d'état, vous pouvez facilement implémenter des changements de style pour le survol, le focus, le clic et d'autres états, améliorant ainsi l'expérience utilisateur.
Préfixes des classes d'état :
| State | Préfixe | Effet |
|---|---|---|
| État de survol | hover: | Contrôle les changements de style d'un élément lorsque la souris le survole. |
| État de focus | focus: | Contrôle les changements de style d'un élément lorsqu'il reçoit le focus. |
| État actif | active: | Contrôle les changements de style d'un élément lorsqu'il est cliqué. |
| État visité | visited: | Contrôle les changements de style des liens visités. |
| État focus-within | focus-within: | Contrôle les changements de style d'un élément parent lorsque son élément enfant reçoit le focus. |
| Combinaisons d'états | Aucun préfixe spécifique | Vous pouvez combiner plusieurs préfixes d'état simultanément, commehover:, focus:, etactive: |
1. Survol
Survol (hover) l'état fait référence au moment où l'utilisateur survole un élément avec la souris, le style de l'élément change. Utilisezhover:préfixe, vous pouvez facilement obtenir cet effet.
Syntaxe:
hover:{class}
Par exemple,hover:bg-sky-700changera la couleur d'arrière-plan de l'élément lorsque la souris le survole.sky-700。
Utilisation courante:
Exemple
Déplacez la souris ici
</button>
Essayez-le »
Lorsque la souris survole, la couleur d'arrière-plan du bouton passe deblue-500àsky-700。
Plus d'exemples:
hover:text-white: Change la couleur du texte en blanc au survol.hover:underline: Ajoute un soulignement au texte au survol.hover:border-2 hover:border-gray-500: Ajoute une bordure de 2px au survol et la définit en gris.
2. Concentration
Focus (focus) L'état de focus fait référence au moment où l'utilisateur interagit avec un élément de formulaire (comme un champ de saisie), l'élément obtient le focus. Utilisezfocus:préfixe, vous pouvez contrôler le style de l'élément lorsqu'il a le focus.
Syntaxe:
focus:{class}
Par exemple,focus:ring-2 focus:ring-blue-600affiche un anneau bleu lorsque l'élément obtient le focus.
Exemple
Essayez-le »
Lorsque l'utilisateur clique sur le champ de saisie ou le sélectionne, le champ de saisie affichera un anneau bleu en surbrillance.
Plus d'exemples:
focus:text-black: Change la couleur du texte en noir au focus.focus:border-blue-500: Change la couleur de bordure du champ de saisie en bleu au focus.focus:ring-4 focus:ring-opacity-50 focus:ring-green-500: Affiche un anneau vert au focus, le met en évidence et définit l'opacité.
3. Active
Active (active) l'état désigne le moment où un élément est cliqué par l'utilisateur, le style de l'élément change. Utilisezactive:préfixe pour contrôler le style lorsqu'on clique.
Syntaxe:
active:{class}
Par exemple,active:bg-green-700change la couleur d'arrière-plan en vert lorsque l'élément est pressé.
Utilisation courante:
Exemple
Cliquez ici
</button>
Essayez-le »
Lorsque le bouton est pressé, la couleur d'arrière-plan devient verte.green-700。
Plus d'exemples:
active:text-gray-600: Change la couleur du texte en gris au clic.active:ring-2 active:ring-opacity-50 active:ring-green-500: Ajoute un effet de surbrillance d'anneau vert à l'élément au clic.
4. États combinés
Tailwind CSS prend en charge la combinaison de plusieurs modificateurs d'état, ce qui vous permet de contrôler plus précisément les changements de style dans les états d'interaction. Par exemple, vous pouvez combiner les états hover, focus, active, ainsi que le responsive ou le mode sombre.
Syntaxe:
{state}:{class}
Par exemple,dark:md:hover:bg-fuchsia-600modifie la couleur d'arrière-plan en mode sombre, aux points d'arrêt moyens, et au survol.
Exemple
Survolez-moi ou mettez le focus sur moi
</button>
Essayez-le »
En mode normal, au survol, la couleur d'arrière-plan du bouton passe àsky-700, et en mode sombre, la couleur d'arrière-plan passe àfuchsia-600。
Plus d'exemples:
sm:focus:ring-2: Sur les appareils à petit écran, ajoutez un anneau de surbrillance de 2px lorsque l'élément reçoit le focus.lg:active:bg-red-500: Sur les appareils à grand écran, changez la couleur d'arrière-plan en rouge lorsque le bouton est cliqué.
5. Pseudo-classes
Tailwind CSS prend également en charge plusieurs modificateurs de pseudo-classes, ce qui vous permet d'appliquer des styles en fonction de la position ou de l'ordre des éléments dans le document.
Modificateurs de pseudo-classes courants:
first-child: S'applique au premier élément enfant.last-child: S'applique au dernier élément enfant.odd-child: S'applique aux éléments enfants aux positions impaires.even-child: S'applique aux éléments enfants aux positions paires.
Exemple
<li class="first:font-bold last:font-light">Élément 1</li>
<li class="odd:bg-gray-100">Élément 2</li>
<li class="even:bg-gray-200">Élément 3</li>
</ul>
Essayez-le »
- Le premier élément de la liste
Item 1sera en gras, et le dernier élément de la listeItem 3aura une graisse de police plus légère. - Les éléments impairs et pairs sont distingués par des couleurs d'arrière-plan différentes.
6. États de formulaire
Tailwind CSS fournit des classes d'état de formulaire pour contrôler les changements de style des éléments de formulaire dans différents états, tels que required (required), invalide (invalid) et désactivé (disabled) états.
Classes courantes:
required: Indique que le champ de saisie est requis.invalid: Utilisé pour une saisie de formulaire invalide.disabled: Éléments de formulaire désactivés.
Exemple
Essayez-le »
- Si le champ de saisie est invalide, une bordure jaune sera affichée.
- Si le champ de saisie est désactivé, la couleur d'arrière-plan deviendra grise.
7. Mise en forme basée sur l'état du parent (modificateur de groupe)
Tailwind CSS vous permet d'affecter le style des éléments enfants lorsque l'élément parent est survolé ou a le focus. En utilisant legroup-hoveretgroup-focusmodificateur, vous pouvez ajuster le style de l'élément enfant lorsque l'état de l'élément parent change.
Syntaxe:
group-{state}:{class}
Par exemple,group-hover:bg-gray-300définira la couleur d'arrière-plan de l'élément enfant en gris lorsque l'élément parent est survolé.
Exemple
<button class="px-4 py-2 bg-blue-500 text-white group-hover:bg-gray-300">
Survolez le parent
</button>
</div>
Essayez-le »
Lorsque le conteneur parent est survolé, la couleur d'arrière-plan du bouton devient grise.
8. Responsive et mode sombre
Tailwind CSS vous permet de combiner les préfixes responsives et les modificateurs de mode sombre pour appliquer différents styles à différentes tailles d'écran et différents modes.
Syntaxe:
- Préfixes responsives :
sm:,md:,lg:,xl:,2xl: - Préfixe du mode sombre :
dark:
Exemple
Bouton responsive et mode sombre
</button>
Essayez-le »
Sur les petits écrans, la couleur d'arrière-plan change au survolblue-700; sur les écrans moyens, un anneau bleu en surbrillance est ajouté au focus, et en mode sombre, la couleur d'arrière-plan devient grise.
9. Configuration des variantes
Danstailwind.config.jsDans le fichier, vous pouvez utiliser lavariantssection pour configurer quelles variantes d'état sont activées.
Exemple
theme: {
extend: {},
},
variants: {
extend: {
backgroundColor: ['active', 'group-hover'],
textColor: ['focus-visible', 'disabled'],
},
},
}
Dans cette configuration,backgroundColorajoute l'activeetgroup-hoverétat, ettextColorajoute l'focus-visibleetdisabledl'état.
10. Premier, dernier, impair et pair
Lorsqu'un élément est le premier enfant ou le dernier élément, utilisezfirstetlastmodificateur pour définir le style de l'élément :
Exemple
<li class="first:text-red-500">Premier élément</li>
<li>Deuxième élément</li>
<li class="last:font-bold">Dernier élément</li>
</ul>
Essayez-le »
Effet :
- La couleur du texte du premier élément de liste devient rouge text-red-500.
- La police du dernier élément de liste devient gras font-bold.
oddModificateur : est utilisé pour sélectionner tous les éléments enfants de position impaire dans le conteneur parent (basé sur un index commençant à 1).
Exemple
<li class="odd:bg-gray-100">Élément 1</li>
<li>Élément 2</li>
<li class="odd:bg-gray-100">Élément 3</li>
<li>Élément 4</li>
</ul>
Essayez-le vous-même »
Effet :La couleur d'arrière-plan des éléments 1 et 3 de la liste devient gris clair bg-gray-100.
evenModificateur : even est utilisé pour sélectionner tous les éléments enfants en position paire dans le conteneur parent (basé sur un index commençant à 1).
Exemple
<li>Élément 1</li>
<li class="even:bg-gray-200">Élément 2</li>
<li>Élément 3</li>
<li class="even:bg-gray-200">Élément 4</li>
</ul>
Essayez-le vous-même »
Effet :La couleur d'arrière-plan des éléments 2 et 4 de la liste devient un gris plus foncé bg-gray-200.
Référence des modificateurs
| Modificateur | Pseudo-classe CSS correspondante/ pseudo-élément ou règle |
Description | Exemple de code |
|---|---|---|---|
hover |
:hover |
S'applique au survol de la souris | <button class="hover:bg-blue-500">Hover me</button> |
focus |
:focus |
S'applique lorsque l'élément reçoit le focus | <input class="focus:ring-2 focus:ring-blue-600" /> |
focus-within |
:focus-within |
S'applique lorsqu'un élément enfant dans le conteneur parent reçoit le focus | <div class="focus-within:border-blue-500"><input /></div> |
focus-visible |
:focus-visible |
Focus activé par la navigation au clavier ou les technologies d'assistance | <input class="focus-visible:ring-2 focus-visible:ring-blue-600" /> |
active |
:active |
S'applique lorsque l'élément est enfoncé ou dans un état actif | <button class="active:bg-green-700">Click me</button> |
visited |
:visited |
Lien visité | <a class="visited:text-purple-600" href="../index.html">Visited link</a> |
target |
:target |
S'applique lorsque le lien cible est activé | <div id="section" class="target:bg-yellow-500"></div> |
first |
:first-child |
Premier élément enfant | <ul><li class="first:text-red-500">First</li><li>Other</li></ul> |
last |
:last-child |
Dernier élément enfant | <ul><li>Other</li><li class="last:font-bold">Last</li></ul> |
odd |
:nth-child(odd) |
Éléments enfants impairs (en comptant à partir de 1) | <ul><li class="odd:bg-gray-100">Odd</li><li>Even</li></ul> |
even |
:nth-child(even) |
Éléments enfants pairs | <ul><li>Odd</li><li class="even:bg-gray-200">Even</li></ul> |
empty |
:empty |
Élément avec un contenu vide | <div class="empty:bg-gray-50"></div> |
disabled |
:disabled |
Élément de formulaire désactivé | <button class="disabled:opacity-50" disabled>Disabled</button> |
enabled |
:enabled |
Élément de formulaire activé | <input class="enabled:border-blue-500" /> |
checked |
:checked |
Case à cocher ou bouton radio cochés | <input type="checkbox" class="checked:bg-blue-500" checked /> |
required |
:required |
L'élément de formulaire est requis | <input class="required:border-red-500" required /> |
before |
::before |
Pseudo-élément inséré avant l'élément | <div class="before:content-['*'] before:text-red-500"></div> |
after |
::after |
Pseudo-élément inséré après l'élément | <div class="after:content-['!'] after:text-green-500"></div> |
sm |
@media (min-width: 640px) |
Petits écrans (à partir de 640px) | <div class="sm:bg-blue-100">Resize to small screen</div> |
dark |
@media (prefers-color-scheme: dark) |
Mode sombre | <div class="dark:bg-black dark:text-white">Dark mode content</div> |
rtl |
[dir="rtl"] |
Direction du texte de droite à gauche | <div dir="rtl" class="rtl:text-right">Right to Left</div> |
aria-checked |
[aria-checked="true"] |
Appliquer des styles aux éléments avec des attributs ARIA | <div aria-checked="true" class="aria-checked:bg-green-500">Checked</div> |
motion-safe |
@media (prefers-reduced-motion: no-preference) |
Préférence d'animation : s'applique lorsqu'aucune préférence n'est définie | <div class="motion-safe:transition-transform motion-safe:duration-500"></div> |