234 votes

Quelle est la différence entre les classes CSS .foo.bar (sans espace) et .foo .bar (avec espace)

Pourriez-vous s'il vous plaît m'expliquer la différence entre la syntaxe de ces deux classes CSS :

 .element .symbol {}

et

 .element.large .symbol {}

Je ne comprends pas la différence entre les deux. La première ligne indique deux classes différentes auxquelles sont appliqués les mêmes styles. Mais à propos du second, quelle est la signification de '.large' qui est écrit attaché à '.element' ?

361voto

rcdmk Points 6068
.element .symbol

signifie .symbol intérieur de .element

 .element.symbol

signifie .element qui a également la classe symbol .

Donc,

 .element.large .symbol

signifie .symbol intérieur de .element qui a également la classe large .

46voto

Hawken Points 1081

Utilisant

 .element.large

fait référence à un élément avec les deux classes :

 <div class="element large"></div>

plutôt qu'un descendant d'un élément :

 .element .large

ce qui signifie que dans :

 <div class="element">
    <div class="large"></div>
</div>

seul

 <div class="large"></div>

« reçoit » les styles.

Fondamentalement , être séparé par un espace implique deux éléments avec une relation descendant

13voto

Chords Points 2416

Vous utiliseriez .element .symbol ceci où vous avez un élément à l'intérieur d'un autre élément. Par example:

 <div class="element">
    <i class="symbol"></i>
</div>

Si plus tard vous vouliez différencier certaines divisions, vous pouvez ajouter une classe supplémentaire pour cibler uniquement celles qui diffèrent, et la cibler avec .element.large .symbol . Ainsi, par exemple :

 <div class="element large">
    <i class="symbol"></i>
</div>

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