De nombreux sites web utilisent des noms de classe comme floatleft
, clearfloat
, alignright
, small
, center
etc. qui décrivent le style qui est attaché à la classe. Cela semble logique, de sorte que lorsque vous écrivez un nouveau contenu, vous pouvez facilement envelopper (par exemple) <div class="clearfloat">...</div>
autour de votre élément pour qu'il se comporte comme vous le souhaitez.
Ma question est la suivante : ce style de dénomination des classes ne va-t-il pas à l'encontre de l'idée de séparer le contenu de la présentation ? En plaçant class="floatleft"
sur un élément, c'est clairement mettre des informations de présentation dans le document HTML.
Faut-il éviter les noms de classe de ce type qui décrivent directement le style attaché, et si oui, quelle alternative existe-t-il ?
Pour clarifier, il ne s'agit pas seulement de savoir comment nommer les classes. Par exemple, un document sémantiquement correct pourrait ressembler à quelque chose comme :
<div class="foo">Some info about foo</div>
...
<div class="bar">Info about unrelated topic bar</div>
...
<div class="foobar">Another unrelated topic</div>
Supposons que toutes ces divs aient besoin d'effacer les flotteurs, la css ressemblerait à quelque chose comme ça :
div.foo, div.bar, div.foobar {
clear:both;
}
Les choses commencent à se gâter lorsque le nombre de ces éléments de compensation augmente - alors qu'une simple class="clearfloat"
servirait le même objectif. Est-il recommandé de regrouper les éléments en fonction des styles qui leur sont associés afin d'éviter les répétitions dans le CSS, même si cela signifie que des informations de présentation se glissent dans le HTML ?
Mise à jour : Merci pour toutes les réponses. Le consensus général semble être d'éviter ces noms de classe au profit de noms sémantiques, ou du moins de les utiliser avec parcimonie à condition qu'ils ne gênent pas la maintenance. Je pense que l'important est que les modifications de la mise en page ne nécessitent pas de changements excessifs dans le balisage (bien que quelques personnes aient dit que des changements mineurs sont acceptables si cela facilite la maintenance globale). Merci également à ceux qui ont suggéré d'autres méthodes pour réduire le code CSS.
1 votes
Les cadres CSS sont réputés pour ce genre de choses.
3 votes
Il ne vous dit pas à quel point. Je pense que c'est une façon parfaitement raisonnable de procéder.
2 votes
Peut-être
small
était un mauvais exemple, car il pouvait décrire le contenu. Mais certainementfloatleft
ycenter
décrire la présentation, et il existe de nombreux autres exemples.0 votes
J'ai tendance à n'utiliser ce genre de noms que pour les classes d'aide. Lorsque vous souhaitez remplacer le comportement hérité d'un élément particulier dans un seul cas