La philosophie des CSS, c'est de séparer le contenu/l'information (HTML) et la manière dont cette information est présentée (CSS).
Tout d'abord, celà veut dire qu'à quelques (rares) exceptions près le HTML n'est pas censé contenir la moindre information de présentation/style.
Ca veut dire naturellement pas de <font>, <i> ou <u>, mais également pas de classes "petit" ou d'id "centre".
Les classes et les ids doivent décrire le rôle des éléments, leur sens, leur signification dans la logique de la page (menu, lien_livre, footer, signature).
Ensuite, il faut utiliser les balises (HTML) dédiées. Par exemple quand un mot ou une expression est important et qu'il faut appuyer dessus, on va utiliser <em> (emphasis, mettre l'emphase sur) et <strong> qu'on stylera ensuite selon nos besoins. Pour un titre ou un sous titre, on utilisera les "headers" h1 à h6, que l'on stylera là encore par la suite l'apparence "par défaut" étant aisément modifiable elle n'a aucune importance.
Enfin seulement on met au point le CSS en accédant aux éléments directement (a, em, h1), via leur classe (.classe) ou leur id (#id). Et on peut faire jouer la cascade.
La cascade, c'est la capacité à accéder au contenu via le contenant.
Par exemple si j'ai une liste et que je veux accéder aux "li" de cette liste
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul> |
Je peux donner une classe à chaque "li", ce qui me force à écrire beaucoup de classes inutiles, ou alors je donne un id à mon UL, ce qui a comme résultat
<ul id="bou">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul> |
et j'accède à mes LI par
#bou li { /*style_des_li*/ } |
Donc des classes comme "petit" ou "centre" n'ont que peu de sens puisqu'il désignent la manière dont le lien sera affiché dès le fichier HTML, ce qui supprime une grande partie de l'intérêt des CSS.
Pour voir les avantages de bien séparer le contenu (HTML) et la présentation (CSS), voir CSS Zen Garden
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody