TUTORIELS 
Définir des classes CSS
Les règles de style sont définies par rapport à des sélecteurs qui peuvent être des balises HTML, mais aussi, pour une plus grande précision dans l'application des styles, des classes définies par le programmeur.  (15 mars 2001)
 

Rappelons-nous que le modèle d'une règle CSS est le suivant:

Sélecteur {Définition de style}

Le sélecteur peut être une balise HTML, comme <H1>, <H2>, mais aussi <BODY>, <LINK>, <A>, etc. La définition de style correspond elle-même au modèle suivant:

{Propriété: valeur; Propriété: valeur; ...; Propriété: valeur}

La liste complète de ces propriétés et de ces valeurs est disponible sur le site du W3C. Les propriétés sont regroupées en 5 grandes catégories (CSS1) auxquelles s'ajoute une catégorie supplémentaire (CSS2 - propriétés de positionnement): propriétés de police; propriétés de couleur et de fond (background); propriétés de texte; propriétés de "boite" (tableaux, cellules, etc.), et propriétés de classification (listes).

Tout ceci permet déjà de très nombreuses possibilités de présentation des pages HTML, mais on se rend compte que l'utilisation exclusive de balises HTML en tant que sélecteurs pourra, dans certains cas, manquer de précision. Par exemple, si l'on veut formater le contenu d'un tableau à 3 lignes de 3 façons différentes (une par ligne), alors on se trouvera limité par la seule balise <TR>. La solution réside dans la définition de classe.

Comment faire?
Le modèle suivant décrit l'opération de définition d'une classe CSS:

.nom de la classe {propriété: valeur; ...}

(notez le point qui précède la définition)
Ainsi, par exemple, on définira la classe "ligne" de la manière suivante:

.ligne {font-family: Arial;
          font-weight: bold;
          color: #000066}

et on appliquera ce style ainsi dans notre document HTML (après avoir incorporé la règle soit par l'intermédiaire d'un lien, soit dans le corps du document HTML):

<TR class="ligne" height="25">...</TR>

A noter qu'une classe, par définition, définit un ensemble d'éléments. On peut l'utiliser pour n'importe quelle balise du document. Pour identifier un sélecteur de manière unique (si par exemple le document doit être manipulé par un script), on peut utiliser les identificateurs (IDs). Ils s'utilisent d'une manière analogue aux classes:

#ligne {font-family: Arial;
          font-weight: bold;
          color: #000066}

(notez le # au lieu du point)
pour la définition du style, et:

<TR id="ligne" height="25">...</TR>

pour son application à une balise.

Pseudo-classes
Quelque peu différentes, les pseudo-classes sont une extension du concept de classes: elles définissent les styles associés à des événements, qui, en tant que tels, ne sont pas des éléments de la structure du document HTML. Ainsi, il existe plusieurs pseudo-classes associées à la balise <A>. Ces pseudo-classes définissent, entre autres, les styles correspondant à un lien inactif (:link), visité (:visited) ou actif (c'est-à-dire survolé par la souris:active). Elles s'utilisent ainsi:

A:link {text-decoration: none; color: blue}
A:active {text-decoration: none; color: red}
A:visited {text-decoration: none: color: #000066}

Les styles des balises (éléments) et des événements-utilisateurs sont donc couverts de manière souple par le premier niveau de spécifications du langage CSS. Le positionnement précis des images, blocs de texte, tableaux et calques sur la page est alors l'étape supplémentaire vers un contrôle total de la présentation de la page web. C'est le rôle du second niveau de spécifications du langage CSS.


Les meilleures astuces CSS sur le JDN :
- Comment appliquer les CSS d'une page web au contenu d'une iframe ?
- Comment centrer horizontalement une DIV dans une autre en CSS ?
- Comment créer un arrière-plan (backgroud) CSS extensible et adaptable ?
- Comment définir les cellpadding et cellspacing en CSS ?
- Comment modifier l'image d'un bouton input en CSS ?
- Comment rendre l'arrière-plan d'un élément semi-transparent en conservant le texte de cet élément opaque en CSS ?
- Internet Explorer supporte-t-il l'attribut CSS border-radius

 
[ Jérôme MorlonJDNet
 
Accueil | Haut de page