Les feuilles de style en cascade (CSS) vous permettent de définir l'apparence d'un élément en se connectant aux attributs que vous lui appliquez. Ces attributs peuvent être soit un identifiant, soit une classe et, comme tous les attributs, ils ajoutent des informations utiles aux éléments auxquels ils sont attachés.
En fonction de l'attribut que vous ajoutez à un élément, vous pouvez écrire un sélecteur CSS pour appliquer les styles visuels nécessaires à la présentation de cet élément et du site Web dans son ensemble.
Alors que les identifiants ou les classes fonctionnent dans le but de les intégrer avec des règles CSS, les méthodes de conception Web modernes favorisent les classes par rapport aux identifiants, en partie, car ils sont moins spécifiques et plus faciles à manipuler. Oui, vous trouverez toujours de nombreux sites utilisant des identifiants, mais ces attributs sont appliqués avec plus de parcimonie que par le passé, tandis que les classes ont repris les pages Web modernes.
Classes simples ou multiples en CSS?
Dans la plupart des cas, vous attribuez un attribut de classe unique à un élément, mais vous n'êtes pas limité à une seule classe, comme vous le faites avec des ID. Bien qu'un élément ne puisse avoir qu'un seul attribut ID, vous pouvez absolument lui attribuer plusieurs classes et, dans certains cas, cela facilitera le style de votre page et lui donnera beaucoup plus de flexibilité!
Si vous devez affecter plusieurs classes à un élément, vous pouvez ajouter les classes supplémentaires et les séparer simplement par un espace dans votre attribut.
Par exemple, ce paragraphe a trois classes:
Ce serait le texte du paragraphe
Cela définit les trois classes suivantes sur la balise de paragraphe:
- Pullquote
- En vedette
- La gauche
Notez les espaces entre chacune de ces valeurs de classe. Ces espaces sont ce qui les définit comme différentes classes individuelles. C'est également pour cette raison que les noms de classe ne peuvent pas contenir d'espaces, car cela les définirait comme des classes séparées. Par exemple, si vous avez utilisé "pullquote-featured-left" sans espace, il s'agirait d'une valeur de classe, mais l'exemple ci-dessus, dans lequel ces trois mots sont séparés par un espace, les définit comme des valeurs individuelles. Il est important de comprendre ce concept lorsque vous décidez des valeurs de classe à utiliser sur vos pages Web.
Une fois que vous avez défini vos valeurs de classe en HTML, vous pouvez les affecter en tant que classes dans votre CSS et appliquer les styles que vous souhaitez ajouter. Par exemple.
.pullquote {…}.En vedette { … }p.left {…}
Dans ces exemples, les déclarations CSS et les paires de valeurs se trouvent entre les accolades, ce qui explique comment ces styles seraient appliqués au sélecteur approprié.
Si vous définissez une classe sur un élément spécifique (par exemple,p.left), vous pouvez toujours l’utiliser dans une liste de classes; Cependant, sachez que cela n'affectera que les éléments spécifiés dans le CSS. En d'autres termes, le p.left style ne s’appliquera qu’aux paragraphes de cette classe puisque votre sélecteur dit de l’appliquer aux "paragraphes avec une valeur de classe de 'gauche'". En revanche, les deux autres sélecteurs de l'exemple ne spécifient pas un élément donné. Ils s'appliquent donc à tout élément utilisant ces valeurs de classe.
Avantages des classes multiples
Plusieurs classes peuvent faciliter l'ajout d'effets spéciaux aux éléments sans avoir à créer un nouveau style pour cet élément.
Par exemple, vous pouvez avoir la possibilité de faire flotter rapidement des éléments à gauche ou à droite. Vous pourriez écrire deux cours
la gauche et
droite avec juste
float: gauche; et
Flotter à droite; en eux. Ensuite, chaque fois que vous avez un élément à flotter à gauche, vous ajoutez simplement la classe "left" à sa liste de classes.
Il y a cependant une belle ligne pour marcher ici. N'oubliez pas que les normes Web dictent la séparation du style et de la structure. La structure est gérée via HTML alors que le style est en CSS. Si votre document HTML est rempli d'éléments portant tous des noms de classe tels que "rouge" ou "gauche", qui déterminent l'apparence des éléments plutôt que leur contenu, vous croisez cette ligne entre structure et style. J'essaie de limiter autant que possible mes noms de classes non sémantiques pour cette raison.
Classes multiples, sémantique et JavaScript
L'utilisation de plusieurs classes présente un autre avantage: elle vous offre de nombreuses possibilités d'interactivité.
Vous pouvez appliquer de nouvelles classes aux éléments existants à l'aide de JavaScript sans supprimer aucune des classes initiales. Vous pouvez également utiliser des classes pour définir la sémantique d'un élément. Cela signifie que vous pouvez ajouter des classes supplémentaires pour définir la signification sémantique de cet élément. Voici comment fonctionne Microformats.
Inconvénients de plusieurs classes
L'inconvénient majeur de l'utilisation de plusieurs classes sur vos éléments est que cela peut les rendre un peu difficiles à regarder et à gérer au fil du temps. Il peut s'avérer difficile de déterminer quels styles affectent un élément et si des scripts le concernent. De nombreux frameworks disponibles aujourd'hui, comme Bootstrap, utilisent beaucoup les éléments à plusieurs classes. Ce code peut devenir incontrôlable et difficile à utiliser très rapidement si vous ne faites pas attention.
Lorsque vous utilisez plusieurs classes, vous courez également le risque de voir le style d'une classe remplacer celui d'une autre, même si vous n'en aviez pas l'intention. Cela peut alors rendre difficile de comprendre pourquoi vos styles ne sont pas appliqués, même s'il semble qu'ils le devraient. Vous devez être conscient de la spécificité, même avec les attributs appliqués à cet élément!
En utilisant un outil tel que les outils pour les webmasters de Google Chrome, vous pouvez voir plus facilement comment vos classes affectent vos styles et éviter ce problème de conflits de styles et d'attributs.