meta nando
mardi 8 juin 2004 à 20:08
( :o le temps que rédige ma réponse, 3 personnes ont déjà donné la leur... Mais bon, je vai quand même donner la mienne...
voici la tortue!

)
Quand tu désires affecter un même style à plusieurs éléments (ou balises) tu utiliseras (entre autres) les sélecteurs d'attribut
class.
Par contre quand tu vises un seul élément tu utiliseras le sélecteur d'identificateur. L'attribut
id doit être unique dans la page.
Exemple:
HTML
<div class="complement">
<ul>
<li>Glossaire</li>
<li id="annuaire">Annuaire</li>
<li>Lexique</li>
</ul>
</div>
<p class="complement">Le mot de la fin...</p>
Pour appliquer le style
complement aux éléments p et div qui le demandent il faut par exemple écrire:
.complement {... le style pour tous les complement ...}Les sélecteurs de classe servent donc à modifier plusieurs éléments de façon identique. Ces sélecteurs sont peu spécifiques, sont généraux, ne ciblent pas...
L'élément li qui a pour id
annuaire, et à lui seul, tu pourras lui appliquer un autre style:
#annuaire {... un style seulement pour le 2ème li ...}Un sélecteur d'ID sert donc à modifier un élément unique. Ce sélecteur est très spécifique, il n'y a pas d'ambiguïté sur la balise cible.
Ce n'est pas tout...
En fait la distinction entre les sélecteur de classe et d'identificateur est une conséquence des règles de spécification des sélecteurs.
Moi qui débute, je passe par cette étape.
J'ai compris que si on ne faisait pas le distinguo class/id c'est qu'on avait pas compris une partie essentielle des CSS, à savoir les règles de cascade.
Voici (en gros) un ordre de priorité d'application des CSS,
du plus global (ou moins spécifique) au plus ciblé (le plus spécifique):
- Le sélecteur universel:
* {background-color: red;} -> tous les fonds seront rouges; - Le sélecteur universel + sélecteur de classe:
*.bleusombre {background-color: #008;} -> seulement les balises de classe bleusombre auront un fond bleu foncé;
.bleusombre {background-color: #008;} -> idem (on peut omettre l'étoile). - Le sélecteur de type:
h2 {background-color: red;} -> tous les titres H2 auront un fond rouge; - Le sélecteur de type + sélecteur de classe:
h2.bleusombre {background-color: #008;} -> seulement les H2 qui sont de classe bleusombre auront un fond bleu foncé; - Les sélecteurs descendants et les sélecteurs d'enfants (ça se complique):
ul li {background-color: red;} -> tous les li fils de tous les ul auront un fond rouge; - Les sélecteurs descendants et les sélecteurs d'enfants + le sélecteur d'ID (ça se complique):
#plus li {background-color: #008;} -> tous les li fils du bloc d'ID plus auront un fond sombre. - #plus .bleusombre {background-color: #008;} -> seulement les balises de classe bleusombre filles du seul bloc d'ID plus auront un fond bleu foncé;
- ...
Beaucoup de combinaisons sont possibles.
Si t'as compris ce que j'ai voulu dire c'est cool.