Sélecteur UNIVERSEL
Rôle
Le sélecteur universel, désigné par le signe * permet de cibler tous les éléments HTML.
Il peut être utile pour appliquer une feuille de style à toutes les balises, ce qui évite l’utilisation du sélecteur multiple.
* { box-sizing: border-box; }
Il est aussi possible d’utiliser le sélecteur (*) pour cibler tous les éléments d’une spécification, comme par exemple, les éléments contenu dans une division.
#entete * { margin-left: 10px; }
Inconvénient
L’utilisation de ce sélecteur est assez controversée. Il exige en effet plus de ressources pour un navigateur qui doit parcourir tous les éléments, mais il faut relativiser cet inconvénient qui se mesure à quelques millisecondes.
Un autre désaccord est sur l’utilisation du sélecteur universel pour la technique de reset qui consiste à supprimer tous les styles par défaut du navigateur. Ces styles permettent de rendre plus lisible le contenu d’un document et d’identifier les différents éléments HTML : paragraphes, titres, listes…
* { margin: 0; padding: 0; font-size: 100%; font: inherit; }
Appliquer un nettoyage sur toutes les balises va à l’encontre du souci de visibilité. Annuler le CSS du navigateur avec (*) ne permet pas d’avoir un contrôle total sur l’apparence du contenu qui doit s’afficher .
On préférera l’utilisation d’autres techniques pour un nettoyage plus précis : normalize, Eric Meyer.
Version : CSS2
Testez vous-même ce sélecteur
Utilisez Codepen.
– Le code CSS
*{ width: 300px; border-left: 5px solid silver; padding-left: 10px; }
– Le code HTML
<h1>titre</h1> <h2>sous-titre</h2> <h3>sous-sous-titre</h3> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore totam delectus magnam, libero nostrum. Nobis nesciunt pariatur cupiditate et itaque voluptatum quaerat dolore odio </p>
Résultat
Vous remarquez que la bordure est appliquée à tous les éléments, y compris à la balise body et html
Compatibilité
Le sélecteur universel * est pris en charge par tous les principaux navigateurs
A voir aussi
#id (sélecteur id)
.class (sélecteur class)
p (sélecteur balise)
#head p>em (sélecteur contextuel)
p,h1 (sélecteur multiple)
p a (sélecteur descendant)
p>a (sélecteur enfant)
[] (sélecteur d’attribut)
[attribut=valeur]
[attribut~=valeur]
[attribut|=valeur]
[attribut^=valeur]
[attribut$=valeur]
[attribut*=valeur]
h1+p (sélecteur adjacent)
h1~p (sélecteur de proximité)