10 façons de masquer des éléments en CSS –
Il existe plusieurs façons de masquer un élément dans CSS, mais elles diffèrent dans la façon dont elles affectent l'accessibilité, la présentation, l'animation, les performances et la gestion des événements.
Animation
Certaines options de masquage CSS sont tout ou rien. L'élément est soit entièrement visible soit entièrement invisible et il n'y a pas d'état intermédiaire. D'autres, comme la transparence, peuvent avoir une plage de valeurs, de sorte que des animations CSS interpolées deviennent possibles.
Accessibilité
Chaque méthode décrite ci-dessous masquera visuellement un élément, mais elle peut ou non masquer le contenu des technologies d'assistance. Par exemple, un lecteur d'écran pourrait encore annoncer de minuscules textes transparents. D'autres propriétés CSS ou attributs ARIA tels que aria-hidden = "true"
peuvent être nécessaires pour décrire l'action appropriée.
Attention, les animations peuvent également provoquer une désorientation, des migraines, convulsions ou autre inconfort physique pour certaines personnes. Envisagez d'utiliser une requête de média à mouvement réduit préféré
pour désactiver les animations lorsque cela est spécifié dans les préférences de l'utilisateur.
Gestion des événements
Le masquage empêchera le déclenchement d'événements sur cet élément ou n'aura aucun effet – cela est, l'élément n'est pas visible mais peut toujours être cliqué ou recevoir d'autres interactions utilisateur.
Performances
Après qu'un navigateur charge et analyse le modèle d'objet HTML DOM et CSS, la page est rendue en trois étapes:
- Disposition: génère la géométrie et la position de chaque élément
- Peinture: dessine les pixels de chaque élément
- Composition : positionne les couches d'éléments dans l'ordre approprié
Un effet qui ne fait que provoque des changements de composition est nettement plus lisse que ceux qui affectent la mise en page. Dans certains cas, le navigateur peut également utiliser l'accélération matérielle.
1. opacité
et filtre: opacité ()
L'opacité : N
et filtre: opacité (N)
les propriétés peuvent être transmises a nombre compris entre 0 et 1, ou un pourcentage entre 0% et 100% indiquant une transparence totale et une opacité totale en conséquence.
Voir le stylo
masquer avec opacité: 0 par SitePoint ( @SitePoint )
sur CodePen .
Il y a peu de différence pratique entre les deux dans les navigateurs modernes, bien que le filtre
devrait être utilisé si plusieurs effets sont appliqués en même temps (flou) , contraste, niveaux de gris, etc.)
L'opacité peut être animée et offre d'excellentes performances, mais méfiez-vous qu'un élément entièrement transparent reste sur la page et peut déclencher des événements.
effet métrique | |
---|---|
prise en charge du navigateur [19659030] bon, mais IE ne prend en charge que l'opacité 0 à 1 | |
accessibilité | contenu non lu si 0 ou 0% est défini |
disposition affectée? | non |
rendu requis | composition |
performances | meilleur, peut utiliser l'accélération matérielle |
cadres d'animation possibles? | oui |
oui les événements déclenchés lorsqu'ils sont cachés? | oui |
2. couleur
Alpha Transparency
l'opacité
affecte tout l'élément, mais il est également possible de définir la couleur
la couleur de fond
et border-color
propriétés séparément. L'application d'un canal alpha zéro à l'aide de rgba (0,0,0,0)
ou similaire rend un élément entièrement transparent:
Voir le stylo
masquer avec la couleur alpha de SitePoint ( @SitePoint )
sur CodePen .
Chaque propriété peut être animée séparément pour créer des effets intéressants. Notez que la transparence ne peut pas être appliquée aux éléments avec des arrière-plans d'image à moins qu'ils ne soient générés à l'aide de gradient linéaire
ou similaire.
Le canal alpha peut être défini avec:
transparent
: entièrement transparent (les animations intermédiaires ne sont pas possibles)rgba (r, g, b, a)
: rouge, vert, bleu et alphahsla (h, s, l, a)
: teinte, saturation, légèreté et alpha#RRGGBBAA
et#RGBA
métrique | effet métrique | |
---|---|---|
support du navigateur | bon, mais IE ne supporte que transparent et rgba | |
accessibilité | contenu encore lu | |
disposition affectée? | aucun | |
rendu requis | peinture | |
performance | bonne performance, | bonne, mais pas aussi vite que l'opacité |
cadres d'animation possibles? | oui | |
événements déclenchés lorsqu'ils sont cachés? | oui |
3. transform
La propriété transform
peut être utilisée pour traduire (déplacer), mettre à l'échelle, faire pivoter ou incliner un élément. Une échelle (0)
ou traduire (-999px, 0px)
hors écran masquera l'élément:
Voir le stylet
masquer avec transformation: échelle (0) ; par SitePoint ( @SitePoint )
sur CodePen .
transform
offre d'excellentes performances et une accélération matérielle car l'élément est effectivement déplacé dans une couche distincte et peut être animé en 2D ou 3D. L'espace de mise en page d'origine reste tel quel, mais aucun événement ne sera déclenché par un élément entièrement masqué.
effet métrique | |
---|---|
prise en charge du navigateur | bon |
accessibilité | contenu encore lu |
mise en page affectée? | non – les dimensions d'origine restent |
rendu requis | composition |
performances | mieux, peut utiliser l'accélération matérielle |
cadres d'animation possibles? | oui |
événements déclenchés déclenchés lorsqu'il est caché? | non |
4. clip-path
La propriété clip-path
crée une région de découpage qui détermine quelles parties d'un élément sont visibles. L'utilisation d'une valeur telle que clip-path: circle (0);
masquera complètement l'élément.
Voir le stylo
masquer avec clip-path par SitePoint ( @ SitePoint )
sur CodePen .
clip-path
offre des possibilités d'animations intéressantes, bien qu'il ne doive être utilisé que dans les navigateurs modernes.
métrique | effect | |
---|---|---|
prise en charge du navigateur | navigateurs modernes uniquement [19659031] accessibilité | contenu encore lu par certaines applications |
disposition affectée? | non – les dimensions d'origine restent | |
rendu requis | peinture | |
performances | performances | raisonnables |
cadres d'animation possibles? | oui, dans les navigateurs modernes | |
les événements déclenchés lorsqu'ils sont cachés? | non |
5. visibilité
La propriété visibilité
peut être définie sur visible
ou masquée
pour afficher et masquer un élément:
Voir le Stylo
masquer avec visibilité: masqué par SitePoint ( @SitePoint )
sur CodePen .
L'espace utilisé par l'élément reste en place sauf si une valeur d'effondrement
est utilisée.
effet métrique | |
---|---|
prise en charge du navigateur | excellent |
accessibilité | contenu pas lu |
disposition affectée? | non, sauf si effondrement est utilisé |
rendu requis composition | sauf si effondrement est utilisé |
performances | bonnes |
images d'animation possibles? | aucun |
événements déclenchés lorsqu'ils sont masqués? | non |
6. affichage
affichage
est probablement la méthode de masquage d'élément la plus utilisée. Une valeur de aucun
supprime efficacement l'élément comme s'il n'avait jamais existé dans le DOM.
Voir le stylo
masquer avec affichage: aucun par SitePoint ( @SitePoint )
sur CodePen .
Cependant, c'est probablement la pire propriété CSS à utiliser dans la majorité des cas. Il ne peut pas être animé et déclenchera une mise en page à moins que l'élément ne soit déplacé du flux de documents en utilisant la position : la propriété absolue
ou la nouvelle propriété contient
est adoptée.
[L'affichage
est également surchargé, avec des options telles que le bloc
en ligne
la table
la flexbox
la grille
et plus. Réinitialisation à la valeur correcte après l'affichage de : aucune;
peut être problématique (bien que non défini
peut aider).
effet métrique | |
---|---|
support du navigateur | excellent |
accessibilité | contenu non lu |
disposition affectée? | oui |
rendu requis | mise en page |
performances | mauvaise |
cadres d'animation possibles? | non |
non | |
] événements déclenchés lorsqu'ils sont masqués? | no |
7. Attribut HTML caché
L'attribut HTML caché
peut être ajouté à n'importe quel élément:
Contenu masqué
pour appliquer le style par défaut du navigateur:
[hidden] {
affichage: aucun;
}
Cela présente les mêmes avantages et défauts que l'affichage de : aucun
bien qu'il puisse être utile lors de l'utilisation d'un système de gestion de contenu qui ne permet pas de changer de style.
8. Position absolue
La propriété position
permet de déplacer un élément de sa position par défaut statique
dans la mise en page à l'aide de top
en bas
à gauche
et à droite
. Un élément absolu
peut donc être déplacé hors écran avec à gauche: -999 px
ou similaire:
Voir le stylo
masquer avec la position: absolu par SitePoint ( @SitePoint )
sur CodePen .
effet métrique | |
---|---|
prise en charge du navigateur | excellent, sauf si vous utilisez position: collant |
accessibilité | contenu encore lu |
disposition affectée? | oui, si le positionnement est modifié |
rendu requis | dépend |
des performances | raisonnables si prudentes |
cadres d'animation possibles? | oui, sur en haut en bas ] gauche et droite |
événements déclenchés lorsqu'ils sont cachés? | oui, mais il peut être impossible d'interagir avec un élément hors écran |
9. Superposer un autre élément
Un élément peut être masqué visuellement en positionnant un autre sur le dessus qui a la même couleur que l'arrière-plan. Dans cet exemple, un :: après
pseudo-élément est superposé, bien que tout élément enfant puisse être utilisé:
Voir le stylo
masquer avec une superposition par SitePoint ( @SitePoint )
sur CodePen .
Bien que techniquement possible, cette option nécessitait plus de code que les autres options.
effet métrique | |
---|---|
prise en charge du navigateur | excellente |
accessibilité | contenu encore lu |
disposition affectée? [19659030] non, si positionné absolument | |
rendu requis | peinture |
performances | raisonnable si prudent |
cadres d'animation possibles? | oui |
événements déclenchés lorsqu'ils sont masqués? | oui, lorsqu'un élément pseudo ou enfant est superposé |
10. Réduire les dimensions
Un élément peut être masqué en minimisant ses dimensions à l'aide de largeur
hauteur
rembourrage
border-width
et / / ou taille de police
. Il peut également être nécessaire d'appliquer overflow: hidden;
pour garantir que le contenu ne déborde pas.
Voir le stylo
masquer avec largeur ou hauteur par SitePoint ( @ SitePoint )
sur CodePen .
Des effets animés intéressants sont possibles, mais les performances sont sensiblement meilleures avec la transformation
.
effet métrique | |
---|---|
prise en charge du navigateur | excellent |
accessibilité | contenu encore lu |
Disposition affectée? | Oui |
Rendu requis | Disposition |
Performances | Mauvais |
Cadres d'animation possibles? | Oui |
Événements déclenchés lorsqu'ils sont masqués? | Non |
Choix cachés
affichage: aucun
a été la solution préférée pour masquer des éléments pendant de nombreuses années, mais il a été remplacé par des options plus flexibles et animables. Il est toujours valide, mais peut-être uniquement lorsque vous souhaitez masquer définitivement le contenu de tous les utilisateurs. transformer
ou opacité
sont de meilleurs choix lorsque l'on considère les performances.
Faites passer vos compétences CSS au niveau supérieur avec CSS Master . Apprenez l'architecture CSS, le débogage, les propriétés personnalisées, les techniques avancées de mise en page et d'animation, comment utiliser CSS avec SVG, et plus encore.
Source link