« Le langage CSS/Structure et syntaxe » : différence entre les versions

aucun résumé des modifications
m (→‎Calcul de spécificité : classement alpha categ)
Aucun résumé des modifications
Une première méthode pour utiliser des styles CSS consiste à intégrer les styles dans l'entête du fichier Html à l'aide d'une balise ''style''. Le code CSS est alors simplement écrit entre la balise ouvrante et la balise fermante :
 
 
<nowiki><html>
<source lang="html4strict"><html>
<head></nowiki>
'''<style type="text/css">'''<nowiki>
</p>
</body>
</html></nowikisource>
 
Les styles CSS ainsi définis ne sont évidemment valides que pour la page en question, on réservera donc en général cette méthode à l'expérimentation ou à des styles propres à une page unique. Pour plus de souplesse, on peut donc transférer le code CSS dans un fichier texte, par exemple ''styles.css'', et appeler ces styles dans l'entête Html à l'aide d'une balise ''link''. Ce fichier CSS peut alors être inclus dans toute page web de cette manière :
 
 
<nowiki><html>
<source lang="html4strict"><html>
<head>
</nowiki>'''<link rel="stylesheet" type="text/css" href="styles.css">'''<nowiki>
</p>
</body>
</html></nowikisource>
 
Le fichier ''styles.css'' contient alors simplement :
 
 
<nowiki>p {
<source lang="html4strict">p {
font-family: Bitstream Vera Sans;
color: #666;
line-height: 1.6em;
}
</nowikisource>
 
Remarque : le chemin des fichiers CSS spécifiés peut être absolu ou relatif. Dans ce deuxième cas, il est relatif au fichier important la feuille de styles, en l'occurrence le document web. Exemple :
On peut alors utiliser une des règles équivalentes suivantes :
 
<nowikisource lang="html4strict"><link rel="stylesheet" type="text/css" href="css/styles.css">
<link rel="stylesheet" type="text/css" href="./css/styles.css">
<link rel="stylesheet" type="text/css" href="http://mon.site.org/css/styles.css">
<link rel="stylesheet" type="text/css" href="/css/styles.css">
</nowikisource>
 
Pour être exhaustif, signalons qu'il existe une autre méthode pour inclure du code CSS externe. Elle consiste à utiliser la règle CSS <code>@import</code> qui permet d'importer une feuille de style dans un code CSS :
 
 
<nowiki><html>
<source lang="html4strict"><html>
<head>
</nowiki>'''<style type="text/css">'''<nowiki>
</p>
</body>
</html></nowikisource>
 
Cette règle permet, via ses variantes syntaxiques, de filtrer les navigateurs de génération 4.x et 5.0, par exemple Netscape 4 et Internet Explorer 5.0 Mac oet/ou Windows. Il faut donc l'utiliser en toute connaissance de cause. Son avantage est que l'on peut facilement déclarer plusieurs feuilles de styles à importer sans multiplier les balises Html.
Ceci définit des styles spécifiques à la sortie écran. Dans le second cas, le plus courant, on définit des fichiers séparés par type de media. Il faut alors ajouter la mention du media dans la page web à l'aide d'un attribut de la balise ''link'' :
 
<nowiki><html>
<source lang="html4strict"><html>
<head>
</nowiki>'''<link rel="stylesheet" type="text/css" href="styles.css" media="screen" />'''
</p>
</body>
</html></nowikisource>
 
Dans cet exemple, la feuille ''styles.css'' contient le style destiné à l'affichage à l'écran dans un navigateur courant, et une seconde feuille ''print.css'' spécifique à l'impression.
On peut importer une feuille de styles CSS dans un fichier Xml. Il faut utiliser la règle suivante :
 
 
<nowikisource lang="html4strict"><?xml-stylesheet type="text/css" href="styles.css"?></nowikisource>
 
L'inconvénient par rapport à l'utilisation d'une feuille de transformation XSL permettant de générer du Html à partir du Xml, est que tous les éléments Xml ont la même apparence par défaut. Il faut ainsi redéfinir le style de quasiment chaque élément. Au contraire une transformation en Html permet d'utiliser les éléments standards du Html comme les paragraphes, les titres, les listes, etc.
Le code Html correspondant serait :
 
<nowiki><div id="page">
<source lang="html4strict"><div id="page">
<h1>Titre de la page</h1>
<p>...</p>
...
</ul>
</div></nowikisource>
 
Nous supposons ici que les éléments du menu sont tous contenus dans un unique bloc parent, un élément ''div'' d'identifiant ''menu''. Que se passerait-il si une feuille de styles importée par la suite modifiait à nouveau la couleur des éléments de titre Html par un « <tt>h1 {color: black}</tt> » ? Rien !
En corrolaire, ceci signifie qu'il vaut toujours mieux '''utiliser le moins possible de sélecteurs''' pour simplifier l'ajout de règles plus spécifiques. Par exemple dans le code Html suivant :
 
<nowiki><div id="page">
<source lang="html4strict"><div id="page">
<p> ...
<ul>
</ul>
</p>
</div></nowikisource>
 
le style des liens ''A'' doit vraisemblablement être spécifié en partant d'une règle simple comme « <tt>div#page a</tt> » plutôt que « <tt>div#page p ul li a</tt> » d'emblée. C'est seulement si d'autres liens apparaissent dans la page en dehors des listes que l'on utilisera « <tt>div#page li a</tt> », et ainsi de suite.
Utilisateur anonyme