PDA

Voir la version complète : Où mettre du CSS


zzatman
15/12/2008, 00h49
Où mettre du CSS ?
Vous vous souvenez ce que CSS veut dire ? Je vous en ai rapidement parlé dans le premier chapitre du cours. Cela signifie : "Cascading Style Sheets", ce qui peut se traduire en français par "Feuilles de style en cascade".

On dit "Feuille de style" car en règle générale, on écrit le code CSS dans un fichier à part (à l'extension .css au lieu de .html). C'est un fichier dans lequel on écrit l'apparence que notre site doit avoir : la couleur et la police du texte, la taille des titres, la position des menus, la couleur ou l'image de fond etc... Croyez-moi, le CSS permet de faire une foule de choses !

On peut écrire du code CSS à 3 endroits différents, selon ce qu'on préfère :


Méthode A : dans un fichier .css (le moyen le plus recommandé)
Méthode B : dans l'en-tête du fichier XHTML
Méthode C : dans les balises


Voici une description de chacune de ces techniques. Si vous ne devez en retenir qu'une, retenez la première :


Dans un fichier .css (Méthode A) :

Comme je viens de vous le dire, le plus souvent on écrit du code CSS dans un fichier spécial ayant l'extension .css (contrairement aux fichiers XHTML qui ont l'extension .html).
C'est la méthode la plus pratique que je vais utiliser quasiment tout le temps dans la suite du cours. Parmi les nombreux avantages que cette solution apporte, il y a la possibilité de pouvoir proposer facilement plusieurs designs différents à vos visiteurs.

Si vous utilisez Notepad++, pensez à aller dans le menu "Langage / CSS" pour activer la coloration du CSS. Vous penserez à enregistrer votre fichier en .css au lieu de .html.

Voici un exemple de fichier CSS sous Notepad++ :

http://www.siteduzero.com/uploads/fr/files/5001_6000/5547.jpg



Si vous voulez voir comment je procède dans une vidéo, cliquez sur le lien ci-dessous :


Enregistrer un CSS sous Notepad++ (170 Ko)


Ce que vous voyez est un aperçu du code CSS que nous allons écrire. Ne vous préoccupez pas de savoir ce que ça veut dire pour le moment, je vais vous expliquer ça un peu plus loin

Maintenant, retournez dans votre fichier XHTML. Il faut y ajouter une ligne entre les balises <head> </head> qui va permettre de "dire" au fichier XHTML quel fichier CSS il doit charger :


Code : HTML
1
2
3
4
5
6
7
8
9
10
11 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Exemple d'utilisation de CSS externe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
</head>
<body>
<p>Cette page comporte une feuille de style externe. C'est la meilleure méthode à utiliser quand on fait du CSS.</p>
</body>
</html>




La balise <link /> comporte plusieurs attributs. Vous pouvez en modifier deux d'entre eux pour le moment :


title : c'est le nom que vous donnez à votre feuille de style (mettez ce que vous voulez)
href : c'est l'emplacement où se trouve votre feuille de style sous forme de lien relatif. Dans cet exemple le CSS se trouve dans le même dossier.



Directement dans le header du fichier XHTML (Méthode B) :

Il est aussi possible de taper du CSS directement à l'intérieur même du fichier XHTML, entre les balises <head> </head>. Vous devrez y mettre une balise <style> </style> à l'intérieur, comme ceci :


Code : HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Exemple de CSS dans le header</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
/* Vous taperez votre code CSS ici */
</style>
</head>
<body>
<p>Cette page comporte du CSS directement dans le header.</p>
</body>
</html>



Cette seconde méthode ressemble beaucoup à la première. Cependant, la première solution (utiliser un .css externe) est quand même bien plus pratique, car elle vous permettra de faire changer le design du site en un clin d'oeil. De plus, le fichier ne sera téléchargé qu'une seule fois pour toutes les pages de votre site, ce qui allègera la taille des fichiers .html et rendra donc votre site plus rapide !

Au risque de me répéter (faut bien que ça rentre :p), je vous recommande donc d'utiliser un fichier .css externe (la première solution proposée) plutôt que de mettre directement le CSS dans le fichier XHTML


La méthode "à l'arrache" dans les balises (Méthode C) :

ça c'est la troisième (et la moins recommandée) des méthodes. Elle consiste à ajouter un attribut style sur les balises pour leur appliquer un style particulier. Cet attribut fonctionne sur toutes les balises. Par exemple sur un titre :


Code : HTML
<h1 style="/* Votre style pour cette balise ici */">Titre</h1>

Cette méthode a tous les défauts : non seulement le CSS sera peu lisible à l'intérieur des balises, mais en plus ça ne nous permet pas de profiter de tous les avantages du CSS, comme la possibilité de changer la couleur de tous les titres du site en un clic.
Bref, je vous ai montré la méthode seulement pour que vous ne soyez pas perdus si vous la voyez.


Voilà, vous venez de voir quelles sont les 3 méthodes que l'on peut utiliser pour insérer du CSS (de la meilleure à la pire).
L'idéal est donc d'utiliser une feuille de style externe (= mettre son CSS dans un fichier .css) et c'est cette méthode que je vais utiliser dans la suite du cours.


Résumé visuel

Je suppose ici que vous avez choisi la Méthode A que je vous ai conseillée. Jusqu'ici on travaillait sur un seul fichier, le .html. A partir de maintenant on va travailler sur 2 fichiers : un .css et toujours notre bon vieux .html.

Résumons donc les fichiers que nous devons avoir sous les yeux pour que ça soit clair pour tout le monde :


Dans le dossier de votre site, il doit y avoir au moins 2 fichiers : un .html et un .css.

http://www.siteduzero.com/uploads/fr/files/135001_136000/135978.png
Le fichier .html contient le code XHTML (qu'on a appris jusqu'ici) avec en particulier la ligne pour faire la liaison avec le fichier .css :

http://www.siteduzero.com/uploads/fr/files/135001_136000/135979.png
Le fichier .css contient du code CSS (que nous allons apprendre à partir de maintenant) :

http://www.siteduzero.com/uploads/fr/files/135001_136000/135980.png


Si vous voulez voir le résultat, il faut ouvrir le fichier .html comme avant (double-cliquez sur l'icône du fichier index.html dans l'explorateur). N'essayez pas d'ouvrir le .css : seul ce fichier ne sert à rien.
C'est le .html qui, lors de son ouverture, va charger le .css et appliquer les informations de style.


Bien, maintenant que cela est clair pour tout le monde (du moins j'espère ), intéressons-nous de plus près au fonctionnement du code CSS.

zzatman
15/12/2008, 00h51
Appliquer un style à des balises
Dans un CSS, on trouve 3 éléments différents :


Des noms de balises : on écrit les noms des balises dont on veut modifier l'apparence. Par exemple, si je veux modifier l'apparence de tous les titres <h1>, je dois écrire h1
Des propriétés CSS : les "effets de style" de la page sont rangés dans des propriétés. Il y a par exemple la propriété color qui permet d'indiquer la couleur du texte, font-size qui permet d'indiquer la taille du texte etc etc... Il y a beaucoup de propriétés CSS et, comme je vous l'ai dit, je ne vous obligerai pas à les connaître toutes par coeur (sauf s'il me prend une envie sadique de vous faire souffrir )
Les valeurs : à chaque propriété CSS on doit indiquer une valeur. Par exemple, pour la couleur, il faut indiquer le nom de la couleur. Pour la taille, il faut indiquer quelle taille on veut etc etc...


Schématiquement, une feuille de style CSS ressemble à ça :


Code : CSS

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 balise1
{
propriete: valeur;
propriete: valeur;
propriete: valeur;
}
balise2
{
propriete: valeur;
propriete: valeur;
propriete: valeur;
propriete: valeur;
}
balise3
{
propriete: valeur;
}



Vous repérez sur ce schéma les balises, propriétés et valeurs dont je viens de vous parler.

Comme vous le voyez, on écrit le nom de la balise (par exemple h1), et on ouvre des accolades pour y mettre les propriétés et valeurs que l'on veut à l'intérieur.

On peut mettre autant de propriétés que l'on veut à l'intérieur des accolades (enfin, il faut en mettre au moins une sinon ça sert à rien )
Chaque propriété est suivie du symbole "deux-points" (:) puis de sa valeur correspondante. Enfin, chaque ligne se termine par un point-virgule (;)

Le point-virgule n'est pas obligatoire s'il n'y a qu'une seule propriété pour la balise (comme c'est le cas pour la balise 3). Toutefois, il vaut mieux prendre l'habitude de le mettre tout le temps, c'est plus sûr

Je vous apprendrai de nombreuses propriétés dans les chapitres suivants. Pour le moment, on va en utiliser deux ou trois au hasard pour l'exemple, mais rassurez-vous : je vous les expliquerai dans les chapitres suivants plus en détail.

Supposons par exemple que je veuille modifier tous mes paragraphes pour qu'ils soient écrits en bleu, avec une taille de 18 pixels.
Je sais que tous les textes de mes paragraphes sont entre des balises <p> </p>, je vais donc écrire le code CSS suivant :


Code : CSS
1
2
3
4
5 p
{
color: blue;
font-size: 18px;
}

Cela signifie en français : "Je veux que tous mes paragraphes soient écrits en bleu avec une taille de 18 pixels."

Ne mettez jamais d'espace entre "18" et "px", car sinon le code CSS ne fonctionnera pas !

Enregistrez ce code CSS dans un fichier "essai.css" par exemple.

Il va falloir maintenant créer un fichier XHTML banal pour tester notre CSS. Il ne faut pas oublier de mettre la balise <link /> dont je vous ai parlé plus haut pour indiquer où se trouve notre fichier CSS.
Voici le fichier de test que j'ai créé, gardez-le dans un coin car il contient de nombreuses balises et il est probable qu'on s'en serve un moment pour les tests de nos futurs CSS :


Code : HTML
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Page d'exemple pour tester le CSS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Essai" href="essai.css" />
</head>
<body>
<h1>Découverte du CSS</h1>

<p>
Bonjour !<br />
Je suis une page XHTML <em>apparemment</em> banale, mais je sers en fait de test de fichier <acronym title="Cascading Style Sheets">CSS</acronym> pour les tutoriels du <a href="http://www.siteduzero.com">Site du Zér0</a>
</p>

<h2>Ce n'est que du blabla</h2>

<p>
Comme l'a dit Neil Armstrong un certain 20 juillet 1969 : <q>C'est un petit pas pour l'Homme, un grand pas pour l'Humanité</q><br />
J'aime la choucroute en conserve.<br />
Vive les frites !
</p>
<p>
Quoi, ça ne veut rien dire ce que j'écris ? On s'en fout, c'est pour tester notre fichier .css rhalala ;o)
</p>
</body>
</html>



Le bouton ci-dessous ouvre le fichier exemple.html (on n'ouvre jamais directement un fichier .css) :


Essayer !


Essayez de modifier le fichier CSS, en mettant une autre couleur ("red" pour rouge par exemple, et "24px" pour avoir un texte écrit très gros ).
Ce qui est génial avec le CSS, c'est que vous pouvez changer l'apparence de tous les paragraphes de vos pages d'un seul coup ! Il suffit de modifier le fichier .css et hop, les modifications sont appliquées

Pour vous entraîner, essayez d'appliquer des styles CSS aussi à d'autres balises comme les titres (h1, h2, em etc...). Ok, pour le moment je ne vous ai montré que 2 propriétés CSS, mais ça devrait vous suffire pour faire des petits tests

Appliquer un style à plusieurs balises

Prenons le code CSS suivant :


Code : CSS

h1
{
color: red;
}
h2
{
color: red;
}



Il signifie que nos balises h1 doivent être en rouge, ainsi que nos balises h2.Oui mais voilà, c'est répétitif car c'est exactement la même chose.

Heureusement, il existe un moyen en CSS d'aller plus vite si les styles de 2 balises doivent avoir la même présentation. Il suffit de séparer les noms des balises par des virgules, comme ceci :


Code : CSS
1
2
3
4 h1, h2
{
color: red;
}

Cela signifie : "Je veux que le texte de mes titres <h1> et <h2> soient écrits en rouge".

Vous pouvez indiquer autant de balises à la suite que vous le désirez. Par exemple, si vous voulez mettre en rouge vos titres, vos liens et vos citations, vous taperez :
h1, h2, a, q
C'est compris ?

Des commentaires dans du CSS

Comme en XHTML, il est possible de mettre des commentaires. Les commentaires ne seront pas affichés, ils servent simplement à indiquer des informations pour vous, par exemple pour vous y retrouver dans un looong fichier CSS.

D'ailleurs, vous allez vous en rendre compte, en général le fichier XHTML est assez petit, et la feuille CSS assez grande (si elle contient tous les éléments de style de votre site, c'est un peu normal). Il est possible (et recommandé) de créer plusieurs fichiers CSS : un fichier pour le design, un autre pour le forum, un autre pour le menu etc etc...

... De quoi on parlait déjà ? Ah oui, les commentaires en CSS (désolé je deviens un peu gâteux :p).

Donc, pour faire un commentaire, c'est fastoche : vous tapez /*, suivi de votre commentaire, puis */ pour terminer votre commentaire.
Vos commentaires peuvent être sur une ou plusieurs lignes. Par exemple :


Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13 /*
essai.css
---------

Par M@teo21
Fichier créé le 10/10/2004
*/

p
{
color: blue; /* Les paragraphes seront bleus */
font-size: 18px; /* La taille de 18 pixels me semble pas mal */
}



Il est probable que j'utilise pas mal de commentaires dans la suite du cours pour vous donner des explications à l'intérieur même des fichiers .css