<ul class=

Résolu/Fermé
sovi Messages postés 19 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 13 août 2009 - 12 août 2009 à 17:31
M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 - 13 août 2009 à 14:37
Bonjour,
Je voudrais comprendre le sens d'un tel appel de class css dans un code HTML.
<ul class="element1 element2 element3">

En effet, comment définir le style css dans le fichier concerné pour la balise <ul> c-dessus:

.element1 {propriétés} .element2 {propriétés} .element3 {propriétés} ?


ou : .element1.element1 .element1 { propriétés} ?

si non comment d'autre ?

Merci d'avance à qui me donnera ce coup de pouce !

3 réponses

M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
12 août 2009 à 17:38
Bonjour,

Les balises HTML peuvent accepter plusieurs classes.
Et c'est bien par un espace qu'on les distingue.

Ainsi, dans le css, on peut avoir les deux versions que tu proposes
.element1 {propriétés}
.element2 {propriétés}
.element3 {propriétés}

et
.element1.element2.element3 {propriétés}

L'avantage d'appliquer plusieurs classes à une balise est de pouvoir créer en css plusieurs catégories.
ainsi on peut avoir un <div class="menu bleu"> et <div class="menu rouge">, il n'y aura qu'à attribuer les couleurs bleues et rouges dans les classes .bleu et .rouge, alors que la classe .menu s'occupera de formater le div.
Ca n'est qu'un exemple d'utilisation parmi d'autres.
1
sovi Messages postés 19 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 13 août 2009 1
12 août 2009 à 17:56
Merci pour ta reponse rapide !

Dans la 2ème version, on voit que la classe element1 encapsule la classe element2 qui encapsule element3 (je pense...)

Mais si j'ai bien compris: je ne suis pas obligé de définir au niveau css les propriétés de style pour la balise <ul> dans les trois classes element1, element2 et element3.

Le fait de les définir uniquement dans la classe element1 suffirait pour formatter la balise <ul class="element1 element2 element3" > ?
0
M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
13 août 2009 à 09:27
"Dans la 2ème version, on voit que la classe element1 encapsule la classe element2 qui encapsule element3 (je pense...) "
Non. la deuxième version du css pointe vers les balises qui ont la classe element1 ET element2 ET element3.
S'il y avait eu encapsulation, il y aurait eu un espace entre les classes dans le css:
div.element1.element2 {} /* toutes les div ayant à la fois les classes element1 et element2 */
div .element1 .element2 {} /* toutes les balises ayant la classe element2 et contenues dans des balises ayant la classe element1 et contenues dans un div. */


"Le fait de les définir uniquement dans la classe element1 suffirait pour formatter la balise <ul class="element1 element2 element3" > ?"
Tout à fait. En css, cette balise serait affecté par tout ce qui concerne les classes .element1{}, .element2{} et .element3{} .
Il est donc tout à fait possible de n'attribuer des propriétés qu'à la classe .element1.

Attention par contre, si 2 mêmes propriétés sont définies dans 2 des classes, c'est la dernière rencontrée qui fera effet. exemple:
.element1 {color:red;}
.element2 {color:blue;}

Le texte du <ul> sera en bleu car la propriété de la classe .element2 arrive après et est donc prioritaire.
0
sovi Messages postés 19 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 13 août 2009 1
13 août 2009 à 14:17
Merci beaucoup M@dien pour tes réponses claires.

Plus d'ombre dans la compréhension de cette balise, maintenant, grâce à ton aide !

Cordialement à bientôt.
0
M@dien Messages postés 437 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
13 août 2009 à 14:37
Mais ce n'est rien, c'est le principe de ce forum!
Ravi d'avoir pu t'aider.

Bon courage pour la suite et à bientôt
0