Les feuilles de style sont utilisées pour mettre en forme le contenu d’une page HTML. Les styles sont déclinés pour des balises, pour des classes ou pour des identifiants. Nous parlons ici de sélecteurs.
Voici trois exemples simples, à partir de trois balises HTML :
<a href="index.php?module=essai>
<input class="num">
<input id="numero1">
qui vont pouvoir être traduites dans une feuille de style en s’appuyant sur la syntaxe suivante :
a { color: blue ; }
.num { width: 3em ; }
#numero1 {
color: red;
text-align: right;
}
Notre lien sera de couleur bleue, le champ de classe num aura une largeur de 3 em (3 fois la taille de la police, l’unité em correspondant à la taille de la police), et notre champ identifié numero1 verra son texte affiché en rouge, et aligné à droite.
Pour résumer, voici les sélecteurs de base :
Vous pouvez également indiquer les actions supportées, par exemple pour les liens :
a:hover { }
permet de définir le comportement quand la souris passe au-dessus d’un lien.
Vous avez la possibilité de combiner les sélecteurs, en les séparant par une virgule :
a:hover, a:active { }
définit le comportement pour un lien survolé par la souris ou actif (pendant le clic).
Il est également possible de définir le comportement d’une balise en fonction de sa position relative par rapport aux autres balises :
Vous pouvez combiner plusieurs déclarations pour obtenir l’effet voulu. Voici un exemple issu d’une mise forme utilisée pour générer un menu. Le menu est créé avec des listes non ordonnées (balises <li> pour définir le niveau, et <ul> pour définir les items de la liste).
div.menu>ul>li { }
Cette balise permet de définir le comportement des balises <li>, comprises dans une balise <ul>, elle-même comprise dans une balise <div class="menu">.
div.menu>ul li { }
Par rapport à l’exemple précédent, les balises <li> sont traitées quelles que soient leur niveau hiérarchique par rapport à la balise <ul>.
Ce mécanisme est très intéressant pour définir un affichage en fonction du contexte. Ainsi, vous pouvez créer une balise <div class="maClasse">, qui contiendra diverses balises (un formulaire, des fieldset - des boites permettant de délimiter des zones, etc.). En créant, dans votre feuille de style, des descripteurs commençant par .maClasse, par exemple .maClasse input, vous pourrez obtenir des affichages qui ne seront valables que dans la balise <div>.
Les tailles de police, de zones... peuvent être exprimées dans plusieurs unités différentes. Pour les écrans, il est recommandé de n’utiliser que les unités proportionnelles, qui seront adaptées à chaque écran pour obtenir un résultat toujours identique, quel que soit la taille du support. Vous pouvez exprimer vos tailles :
Dans la pratique :
Le CSS, dans sa version actuelle, ne traite que les aspects de présentation : il n’est pas possible de définir, dans la feuille de style, des attributs qui interviennent en interaction avec l’utilisateur. Ainsi, pas question de préciser les attributs des champs de saisie comme required (champ obligatoire), title (message affiché au survol ou en cas d’erreur dans le formulaire), placeholder (exemple de saisie) dans la feuille de style.
Ces attributs peuvent toutefois être déclarés dans des scripts Javascript (JQuery). En combinant des déclarations JQuery avec des feuilles de style, vous pouvez ainsi obtenir des comportements globaux dans l’application.