Il peut s'avérer intéressant d'affecter des styles différents à des mêmes balises. Pour cela les spécifications CSS ont introduit le concept de classe.
La définition des classes est aussi simple que celles des styles. Elle consiste à préciser la balise sélectionnée (comme pour une déclaration de style), puis de lui ajouter un point (.) et le nom que l'on souhaite donner à la classe. Le nom de la classe peut-être composé de lettres (accentuées ou non), de chiffres et de tirets :
Selecteur_de_balise.Nom-de-la-classe {
propriété de style: Valeur;
propriété de style: Valeur;
...;
}
Où "Nom-de-la-classe" représente le nom que vous donnez à la classe.
Pour appeler une classe dans le code HTML, il suffit de rajouter un attribut class à la balise : Soit la classe Rouge appliquée à la balise b :
B.rouge {font: Verdana 12px; font-color: #FF0000; }
L'appel à cette classe dans le code se fera de la façon suivante :
<B class="Rouge"> Tete à mettre en rouge et en gras </B>
Il est possible de ne pas préciser de balise, auquel cas la classe pourra être utilisée dans n'importe quelle balise pour laquelle le style sélectionné a un sens ! On parle alors de classe universelle. La définition d'une telle classe se fait en précédant tout simplement le nom de la classe d'un point :
.Nom-de-la-classe {propriété de style: Valeur; propriété de style: Valeur ...}
Créons par exemple la classe "important"
.important {font-type: arial; color: red; font-weight: bold}
Les pseudo-classes permettent d'affiner le style appliqué à un certain nombre de balise en définissant une réaction à un événement ou bien à la position relative de la balise au sein des autres balises.
Contrairement aux classes, le nom des pseudo-classes est prédéfini, il n'est donc pas possible de créer ses propres pseudo-classes. Il existe plusieurs types de pseudo-classes :
Les pseudo-classes dynamiques permettent de modifier le style d'une balise en fonction d'un événement (mouvement de la souris, clic, ou bien appui sur une touche du clavier). Il en existe trois :
A:hover {font-decoration: underline;}
TEXTAREA:focus {color: #FF0000;}
A:active {color: #FF0000;}
![]() |
Les pseudo-classes dynamiques ne sont pas reconnues de la même façon par tous les navigateurs. |
Les pseudos-classes de lien sont des pseudo-classes spécifiques à la balise <A> :
![]() |
Il est possible que certains navigateurs considèrent un lien comme n'ayant pas été visité s'il n'est pas consulté pendant une longue période de temps. |
La pseudo-classe first-child permet d'appliquer un style à la première balise au sein d'un élément. La syntaxe de cette pseudo-classe est la suivante :
Element_Parent > Balise:first-child {style;}
Ainsi la déclaration suivante s'applique à la première balise
<A> situé dans un jeu de balises <P> </P>:
P > A:first-child {color: #00FF00;}
De cette manière, la balise <A> suivante possèdera le
style ci-dessus :
<P align="justify"> <A href="http://www.commentcamarche.net">CCM</A> </P>La balise <A> suivante ne sera par contre pas prise en compte car elle n'est pas la première balise après la balise <P> :
<P align="justify"> <BR/< <A href="http://www.commentcamarche.net">CCM</A> </P>
Il est possible de définir un style en fonction de la langue du document (spécifiée dans les en-têtes HTTP ou dans les balises méta) ou de la langue d'un élément HTML ou XML (spécifié grâce à l'attribut optionnel LANG) si celle-ci est précisée.
Les pseudo-éléments permettent d'appliquer un style à une partie du texte délimité par les balises auxquelles ils s'appliquent. Ainsi les pseudo-éléments s'utilisent généralement conjointement avec la balise de paragraphe (<P>).
Il existe deux pseudo-éléments :
P:first-line { text-transform: uppercase }
P:first-letter { font-size: 200%; font-weight: bold; }
Les ID servent à remplacer les classes lorsqu'il y a du JavaScript dans la page, car le JavaScript emploie lui aussi la syntaxe nom.nom (nom-point-nom).
La syntaxe est alors:
#nom_ID { propriété de style: Valeur; propriété de style: Valeur ...}
On l'appelera de la manière suivante:
<BALISE ID="nom_ID" > ... </BALISE>
On ne peut faire appel qu'à un seul même ID par page!