101 votes

Que fait un astérisque (*) dans un sélecteur CSS ?

J'ai trouvé ce code CSS et je l'ai exécuté pour voir ce qu'il faisait et il a souligné TOUS les éléments de la page,

*Quelqu'un peut-il expliquer ce qu'est l'astérisque `` en CSS ?**

<style>
* { outline: 2px dotted red }
* * { outline: 2px dotted green }
* * * { outline: 2px dotted orange }
* * * * { outline: 2px dotted blue }
* * * * * { outline: 1px solid red }
* * * * * * { outline: 1px solid green }
* * * * * * * { outline: 1px solid orange }
* * * * * * * * { outline: 1px solid blue }
</style>

0 votes

@jasondavis - Cette question est spécifique à votre code, sinon je poserais une nouvelle question. Votre page affiche-t-elle plusieurs contours avec des couleurs différentes ? La seule façon de produire des couleurs différentes est de spécifier une balise puis *, c'est-à-dire div * { outline ...} y * { outline ... } . Si j'utilise * { outline ... } y * * { outline ... } seule la dernière description css est utilisée.

99voto

Soviut Points 26384

Il s'agit d'un caractère générique, ce qui signifie qu'il sélectionnera tous les éléments dans cette partie du DOM.

Par exemple, si je veux appliquer une marge à chaque élément de ma page entière, vous pouvez utiliser :

* {
    margin: 10px;
}

Vous pouvez également l'utiliser à l'intérieur de sous-sélections. Par exemple, le texte suivant ajouterait une marge à tous les éléments à l'intérieur d'une balise de paragraphe :

p * {
    margin: 10px;
}

Votre exemple consiste à appliquer des bordures et des marges consécutives à des éléments pour leur donner des bordures de couleurs multiples. Par exemple, une bordure blanche entourée d'une bordure noire.

0 votes

Quel est l'avantage d'utiliser p * au lieu d'utiliser simplement p ?

7 votes

Il n'y a pas d'"avantage", c'est simplement la façon dont vous sélectionnez tous les éléments descendants à l'intérieur d'un élément p tag. Ainsi, si vous avez un span , b , strong , img à l'intérieur de votre paragraphe, il les sélectionnera et leur appliquera les styles.

31voto

Tom Points 3697

Le CSS que vous avez référencé est très utile à un concepteur de sites web pour déboguer les problèmes de mise en page. Il m'arrive souvent de l'insérer temporairement dans la page afin de voir la taille de tous les éléments de la page et de repérer, par exemple, celui qui a trop d'espacement, ce qui fait que d'autres éléments ne sont pas à leur place.

La même astuce peut être réalisée avec la première ligne seulement, mais l'avantage de définir plusieurs contours est que vous obtenez un indice visuel de la hiérarchie des éléments de la page imbriqués grâce à la couleur de la bordure.

2 votes

Cependant, de nos jours, les inspecteurs intégrés au navigateur sont bien plus efficaces, non ? Ou en utilisant firebug.

0 votes

@SoftwareMonkey - Oui, c'est vrai de nos jours. Les inspecteurs intégrés sont formidables. Par exemple, j'utilise Chrome et je fais Ctrl+Shift+c puis survoler un élément et Chrome colore l'arrière-plan. C'est beaucoup plus rapide que d'intégrer ce style d'astérisque dans le CSS.

1 votes

Bien que la réponse de Soviut soit vraie, cette réponse aurait dû être marquée comme la bonne, car elle correspond exactement à la question posée.

4voto

futureelite7 Points 6247

* est un caractère générique. Cela signifie qu'il appliquera le style à n'importe quel élément HTML. Les * supplémentaires appliquent le style à un niveau d'imbrication correspondant.

Ce sélecteur applique des contours de couleur différente à tous les éléments d'une page, en fonction du niveau d'imbrication des éléments.

4voto

Mike Trpcic Points 12741

* agit comme un joker, comme dans la plupart des autres cas.

Si c'est le cas :

*{
  margin: 0px;
  padding: 0px;
  border: 1px solid red;
}

Entonces todos Les éléments HTML auront ces styles.

0voto

Dans votre feuille de style, vous devez généralement définir des règles de base pour tous les éléments, telles que l'attribut font-size et les marges. {font-size:14px ; margin:0 ; padding:0;} / annule les paramètres par défaut du navigateur sur les éléments, toutes les polices de texte seront rendues à la taille de 14 pixels avec une marge et un rembourrage nuls, y compris h1,...pre. */

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X