Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Sommaire
Introduction....................................................................................................................................................................4
1. O mettre du CSS ?...................................................................................................................................................4
2. Rsum visuel.............................................................................................................................................................7
3. Appliquer un style des balises ..............................................................................................................................9
4. Appliquer un style plusieurs balises...................................................................................................................12
5. Des commentaires dans du CSS........................................................................................................................... 12
6. Utiliser les class et id .............................................................................................................................................. 13
7. Les balises universelles........................................................................................................................................... 15
8. Imbrications de balises........................................................................................................................................... 16
9. Formatage du texte en CSS (partie 1/2) ............................................................................................................. 17
Taille du texte ......................................................................................................................................................... 17
Polices ...................................................................................................................................................................... 20
Alignement .............................................................................................................................................................. 21
Alignements simples.......................................................................................................................................... 21
L'indentation....................................................................................................................................................... 23
10. Formatage du texte en CSS (partie 2/2) ...........................................................................................................24
Effets de style ......................................................................................................................................................... 24
Mettre en italique................................................................................................................................................ 24
Mettre en gras......................................................................................................................................................25
Les majuscules en CSS.......................................................................................................................................25
Un peu de dcoration ?......................................................................................................................................26
11. Les couleurs .......................................................................................................................................................... 27
Indiquer le nom de la couleur...........................................................................................................................27
La notation hexadcimale..................................................................................................................................29
La mthode RGB............................................................................................................................................... 29
Le fond .................................................................................................................................................................... 31
La couleur de fond............................................................................................................................................. 32
L'image de fond.................................................................................................................................................. 34
12. Des liens sympas .................................................................................................................................................. 38
Au passage de la souris...................................................................................................................................... 39
Au moment du clic.............................................................................................................................................41
Lorsque le lien est slectionn.......................................................................................................................... 41
Quand la page a dj t vue............................................................................................................................ 42
Premire lettre et premire ligne modifies........................................................................................................ 43
La premire lettre............................................................................................................................................... 43
La premire ligne................................................................................................................................................ 44
Avant / Aprs .........................................................................................................................................................44
Une image au lieu du texte ?............................................................................................................................. 46
13. Les listes puces .................................................................................................................................................. 47
Diffrents types de listes (XHTML).................................................................................................................... 47
Liste non ordonne............................................................................................................................................ 47
Liste ordonne.................................................................................................................................................... 48
Liste de dfinitions............................................................................................................................................. 48
Dcorez vos listes (CSS) ....................................................................................................................................... 50
Retrait des listes.................................................................................................................................................. 50
Reprsentation de la puce................................................................................................................................. 52
Changer l'image de la puce................................................................................................................................55
14. Mise en bote (partie 1/2).................................................................................................................................... 56
Rappel : Block et Inline ce nest pas pareil ! ...................................................................................................... 56
Quelques exemples.............................................................................................................................................57
Les balises universelles.......................................................................................................................................57
2
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
3
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Introduction
CSS signifie : "Cascading Style Sheets", ce qui peut se traduire en francelais par "Feuilles de style en
cascade".
On dit "Feuille de style" car en rgle gnrale, 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...
1. O mettre du CSS ?
On peut crire du code CSS 3 endroits diffrents, selon ce qu'on prfre :
4
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
1 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
3 <head>
4
<title>Exemple d'utilisation de CSS externe</title>
5
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
6
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
7 </head>
8 <body>
9
<p>Cette page comporte une feuille de style externe. C'est la meilleure mthode utiliser
10 quand on fait du CSS.</p>
11 </body>
</html>
La balise <link /> comporte plusieurs attributs. Vous pouvez en modifier deux d'entre eux
pour le moment :
o
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 mme dossier.
balises, mais en plus cela 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.
Voil, vous venez de voir quelles sont les 3 mthodes que l'on peut utiliser pour insrer du
CSS. L'idal est donc d'utiliser une feuille de style externe (= mettre son CSS dans un fichier
.css) et c'est cette mthode qui sera utilise dans la suite du cours.
6
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
2. Rsum visuel
Dans le dossier de votre site, il doit y avoir au moins 2 fichiers : un .html et un .css.
Le fichier .html contient le code XHTML avec en particulier la ligne pour faire la liaison avec le
fichier .css :
7
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Le fichier .css contient du code CSS (que nous allons apprendre partir de maintenant) :
8
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Si vous voulez voir le rsultat, il faut ouvrir le fichier .html comme avant (double-cliquez sur l'icne
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.
Des noms de balises : on crit les noms des balises dont on veut modifier l'apparence. Par
exemple, si on veut modifier l'apparence de tous les titres <h1>, on doit crire h1
Des proprits CSS : les "effets de style" de la page sont rangs dans des proprits. Il y a par
exemple la proprit color qui permet d'indiquer la couleur du texte, font-size qui permet
d'indiquer la taille du texte etc etc.
9
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Les valeurs : chaque proprit 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...
balise1
{
propriete: valeur;
propriete: valeur;
propriete: valeur;
}
balise2
{
propriete: valeur;
propriete: valeur;
propriete: valeur;
propriete: valeur;
}
balise3
{
propriete: valeur;
}
10
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Cela signifie en francelais : "Tous les 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 crer un fichier XHTML banal pour tester notre CSS. Il ne faut pas oublier de
mettre la balise <link /> pour indiquer o se trouve notre fichier CSS.
Voici un fichier de test, 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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1strict.dtd">
<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>Dcouverte du CSS</h1>
1
2
3
4
5
6
7
8
9
10
<p>
11
Bonjour !<br />
12
Je suis une page XHTML <em>apparemment</em> banale, mais je sers en fait de test de fichier <acronym
13 title="Cascading Style Sheets">CSS</acronym> pour les tutoriels du <a href="http://www.siteduzero.com">Site
14 du Zr0</a>
15
</p>
16
17
<h2>Ce n'est que du blabla</h2>
18
19
<p>
20
Comme l'a dit Neil Armstrong un certain 20 juillet 1969 : <q>C'est un petit pas pour l'Homme, un grand
21 pas pour l'Humanit</q><br />
22
J'aime la choucroute en conserve.<br />
23
Vive les frites !
24
</p>
25
<p>
26
Quoi, cela ne veut rien dire ce que j'cris ? On s'en fout, c'est pour tester notre fichier .css rhalala ;o)
27
</p>
</body>
</html>
11
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
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
rptitif car c'est exactement la mme chose.
Heureusement, il existe un moyen en CSS d'aller plus vite si les styles de 2 balises doivent avoir la
mme prsentation. Il suffit de sparer les noms des balises par des virgules, comme ceci :
Code : CSS
1 h1, h2
2{
3 color: red;
4}
Cela signifie : "Que le texte des titres <h1> et <h2> soient crits en rouge".
Vous pouvez indiquer autant de balises la suite que vous le dsirez. Par exemple, si vous voulez
mettre en rouge vos titres, vos liens et vos citations, vous taperez :
h1, h2, a, q.
D'ailleurs, vous allez vous en rendre compte, en gnral le fichier XHTML est assez petit, et la feuille
CSS assez grande (si elle contient tous les lments de style de votre site). Il est possible (et
recommand) de crer plusieurs fichiers CSS : un fichier pour le design, un autre pour le forum, un
autre pour le menu etc etc...
12
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Pour faire un commentaire, 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
--------Fichier cr le 10/10/2009
*/
p
{
L'attribut class
L'attribut id
13
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Comment faire partir de l pour dire dans le CSS : "que toutes mes balises qui ont la class
"important" soient crits en rouge / 18 pixels" ?
C'est trs simple : au lieu de mettre le nom de la balise avant les accolades (comme p ou encore h1),
vous devez crire un point suivi du nom de la class, comme par exemple :
.important
14
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
1 important
2{
3 color: red;
4 font-size: 18px;
5}
Testez maintenant la page XHTML prcdente, et voyez comment la class "important" que nous
avons cre modifie le texte :
Lattribut id
Il fonctionne exactement de la mme manire que class, un dtail prs : il ne peut tre utilis
qu'une fois.
Un nom d'id doit commencer par une lettre et peut tre suivi ensuite de lettres et de chiffres. Un id
nomm "3tableaux" est invalide car il commence par un chiffre. Un id "tableau3" est en revanche
valide.
Nous avons dj vu l'attribut id dans le chapitre sur les liens (pour raliser des ancres).
En pratique, nous ne mettrons des "id" que sur des lments qui sont uniques sur votre page,
comme par exemple le logo :
<img src="images/logo.png" alt="Logo du site" id="logo" />
Dans le CSS, ce n'est pas un point que vous devez mettre avant le nom de l'id, mais un dise (#) :
Code : CSS
1 #logo
2{
3 /* Mettez les proprits CSS ici */
4}
Par exemple, si on veut modifier uniquement "Neil Armstrong" dans le paragraphe suivant :
Code : HTML
1 <p>Comme l'a dit Neil Armstrong un certain 20 juillet 1969...</p>
Ca serait facile faire s'il y avait une balise autour de "Neil Armstrong", malheureusement il n'y en a
pas. Heureusement, on a 2 balises importantes, la diffrence entre les deux est :
<span> </span> : c'est une balise de type inline. Vous vous souvenez ce qu'est une balise
inline ? C'est une balise qui se met l'intrieur d'un paragraphe, comme <strong>, <em>,
<q>. Cette balise s'utilise donc au milieu d'un paragraphe, et c'est celle dont nous allons nous
servir pour colorer Neil Armstrong.
<div> </div> : c'est une balise de type block. Comme <p>, <h1> etc... Elle cre un nouveau
"bloc" dans la page, et provoque donc obligatoirement un retour la ligne. C'est une balise
trs trs utilise pour faire un design. Nous lui ddierons d'ailleurs 2 chapitres entiers dans la
suite du cours pour vous aider construire le design de votre site web.
Pour le moment donc, nous allons utiliser plutt la balise <span>.On la met autour de Neil
Armstrong, on lui rajoute une class, on cre le CSS.
Code : HTML
1 <p>Comme l'a dit <span class="nom">Neil Armstrong</span> un certain 20 juillet 1969...</p>
Code : CSS
1 .nom
2{
3 color: blue;
4}
8. Imbrications de balises
Une des dernires notions "de base" sur le CSS est qu'on a la possibilit d'indiquer l'ordre
d'imbrication des balises dans le CSS. C'est en fait simple comprendre, et surtout utile.
Nous sommes dans notre fichier CSS. Nous souhaiterions dfinir un style uniquement pour les balises
<em> qui se trouvent l'intrieur d'un titre <h3>.On doit crire ceci :
Code : CSS
1 h3 em /* => tous les em situs l'intrieur d'un h3 */
2{
3 color: blue;
4}
16
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Comme vous le voyez, on a juste spar les 2 noms de balises par un espace, et non pas par une
virgule comme on l'a fait plus haut.
Cela signifie "quon veut modifier le style de toutes les balises <em> situes l'intrieur de titres
<h3>". On a indiqu dans le CSS dans quel ordre devaient tre imbriques les balises.
L'ordre est trs important ! Si vous aviez mis "em h3" cela aurait voulu dire "Tous les <h3> situs
l'intrieur de balises <em>".Cela est d'ailleurs impossible faire car on ne peut pas mettre une balise
de type block dans une balise de type inline.
Voici un fichier XHTML pour que vous compreniez bien comment cela fonctionne :
Code : HTML
<h3>L'imbrication, c'est <em>pratique</em></h3>
1
2
<p>Cet exemple vous montre comment fonctionne l'imbrication.<br />Le mot "pratique" dans le titre sera
3
crit en bleu, mais pas celui-ci : <em>pratique</em>.</p>
Taille du texte
17
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Les possibilits pour modifier la taille du texte sont nombreuses (et varies !).
Ce que vous savez dj, c'est que la proprit CSS qui permet de changer la taille du texte est fontsize. Cela ne change pas. Mais par contre, on peut indiquer la taille du texte de diffrentes manires :
En pixels : c'est une faon trs prcise d'indiquer la taille du texte. C'est vous de dire
combien de pixels exactement doit faire le texte.
Pour avoir un texte de 16 pixels de hauteur, vous devez crire :
font-size:16px;
Les lettres auront une taille de 16 pixels, comme le montre l'image suivante :
p
{
font-size: 14px; /* Paragraphes de 14 pixels */
}
h1
{
font-size: 22px; /* Titres de 22 pixels */
}
Il est aussi possible d'indiquer une taille en centimtres ("2cm" par exemple) et en
millimtres ("14mm" par exemple).
Indiquer la taille du texte en pixels, centimtres et millimtres est trs pratique et trs prcis.
Certes. Mais il est prfrable d'indiquer une taille relative (comme nous allons le voir) afin
que la taille du texte s'adapte aux choix de tout le monde (certains prfrent avoir du texte
plutt gros, d'autres plutt petit etc...)
En donnant une valeur relative : c'est--dire en crivant carrment "gros", "trs gros",
"petit", "minuscule". Mais bien sr, comme tout c'est en anglais :p. Voici la liste des
diffrentes valeurs que vous pouvez mettre ainsi que leur signification :
o
o
o
o
o
xx-small : minuscule
x-small : trs petit
small : petit
medium : moyen
large : grand
18
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
o
o
.minuscule
{
font-size: xx-small;
}
.trespetit
{
font-size: x-small;
}
.petit
{
font-size: small;
}
.moyen
{
font-size: medium;
}
.grand
{
font-size: large;
}
.tresgrand
{
font-size: x-large;
}
.supermegagigatresgrand
{
font-size: xx-large;
}
La taille du texte n'est peut-tre pas exactement identique selon le navigateur... mais ce n'est
pas bien grave, car dans tous les cas "xx-small" correspond un texte trs petit, et "xx-large"
un texte trs grand.
Cest cette mthode qui est indique, pour exprimer la taille du texte plutt que d'utiliser des
pixels. Votre site sera ainsi bien plus "adaptable" aux diffrentes configurations de vos
visiteurs.
En em : c'est une autre faon d'indiquer de manire relative la taille du texte. Un peu dlicat
comprendre, mais c'est une mthode vraiment pratique.
On doit indiquer la taille du texte par rapport la taille normale de la police. Cest--dire :
"1em" signifie "Taille normale". Si vous mettez un nombre suprieur (gnralement un
nombre dcimal) comme "1.3em", le texte aura une taille 1,3 fois plus grande. De mme
pour rduire : "0.8em" et votre texte aura une taille 0,8 fois plus petite.
19
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Faites attention, il faut mettre un point la place de la virgule pour les nombres
dcimaux.Vous devez donc crire "1.4em" et non pas "1,4em" !
Code : CSS
1
2
3
4
5
6
7
8
.petit_em
{
font-size: 0.7em;
}
.grand_em
{
font-size: 1.3em;
}
En pourcentage : cela c'est facile. Si vous indiquez "100%", le texte aura une taille "normale".
Si vous mettez "130%", le texte aura une taille correspondant 130% de la taille normale. Ca
ressemble normment aux "em" (en fait c'est plus ou moins pareil).
En ce qui me concerne, la mthode des "em" (ou des %) est la plus pratique : elle a
l'avantage de s'adapter automatiquement aux prfrences du visiteur et d'tre facile
utiliser.
Polices
En effet, le problme c'est que, pour qu'une police s'affiche correctement, il faut que tous les
internautes l'aient. Si un internaute n'a pas la mme police que vous, son navigateur prendra une
police par dfaut (une police standard) qui n'aura peut-tre rien voir avec ce quoi vous vous
attendiez.
Certes, tout le monde a "Times new roman" et "Arial"... Et encore, sur Mac c'est "Time" et pas "Times
New Roman".
La proprit CSS qui permet d'indiquer la police est font-family. Vous devez indiquer le nom de la
police comme ceci :
font-family:police;
Seulement, pour viter qu'il n'y ait de problme si l'internaute n'a pas la mme police que vous, on
met en gnral plusieurs noms de police, spars par des virgules :
font-family:police1, police2, police3, police4;
Le navigateur essaiera d'abord de mettre la police1. S'il ne l'a pas, il essaiera de mettre la police2. S'il
ne l'a pas, il essaiera la police3 et ainsi de suite.
En gnral, on met en tout dernier "serif", ce qui correspond une police standard (qui ne se met
que si aucune autre police n'a t trouve).
Oui, mais quelles sont les polices les plus courantes qu'on a le "droit" d'utiliser ?
20
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Voici une liste de polices qui fonctionnent bien sur la plupart des navigateurs et que vous pouvez
donc utiliser sans crainte :
Arial
Arial Black
Comic Sans MS
Courier New
Georgia
Impact
Times New Roman
Trebuchet MS
Verdana
Code : CSS
1
2
3
4
5
6
7
8
9
h1
{
font-family: "Arial Black", Arial, Verdana, serif; /* On essaie d'avoir Arial Black en priorit */
}
p
{
/* La police Comic Sans MS est agrable lire pour les paragraphes je trouve */
font-family: "Comic Sans MS", "Trebuchet MS", Georgia, serif;
}
Alignement
Alignements simples
Le langage CSS nous permet de faire tous les alignements que l'on connat : gauche, centr, droite
et justifi.
C'est tout simple. On utilise la proprit text-align, et on indique l'alignement dsir :
justify : le texte sera "justifi". Justifier le texte permet de faire en sorte qu'il prenne toute la
largeur possible sans laisser d'espace blanc la fin des lignes. Les textes des journaux, par
exemple, sont tout le temps justifis.
h1
{
text-align: center; /* Pour centrer le titre */
font-family: "Arial Black", Arial, Verdana, serif; /* Un titre en Arial Black c'est mieux :o;) */
}
blockquote
{
text-align: justify; /* La citation sera justifie */
}
.signature
{
text-align: right; /* Pour aligner droite ma signature */
font-family: "Comic Sans MS", Georgia, "Times New Roman", serif;
font-size: 80%;
}
N'oubliez pas qu'il y a toujours du XHTML derrire, bien entendu. Sachez toutefois qu'il est toujours
possible d'afficher le code XHTML d'une page en faisant Clic droit / "Afficher le code source".
Voici donc le code XHTML de cet exemple permettant de tester les alignements :
Code : HTML
<h1>La parole du sage</h1>
<p>Un jour, un grand sage a dit :</p>
1
2
3
4
5
6
7
<blockquote><p>Morbi fermentum libero non libero. Nunc in turpis in justo adipiscing scelerisque. Donec id
elit non diam aliquet semper. Maecenas pede. Maecenas fringilla. Fusce eleifend dui quis lectus. Praesent
facilisis, ligula a consequat posuere, metus purus porta mi, at consectetuer justo wisi id dui. Maecenas mattis.
Ut imperdiet pharetra enim. Suspendisse quis leo nec arcu interdum aliquam. Vivamus dictum quam id tellus.
Maecenas in quam sit amet risus semper auctor. Integer leo dui, malesuada eu, fermentum at, vehicula at,
nisl. Pellentesque hendrerit. Proin ut libero. Curabitur sem ipsum, porta non, feugiat vel, mollis ut, justo. Sed a
orci id metus pretium lobortis. Morbi ultrices, quam a facilisis faucibus, odio nunc dignissim enim, eget
rhoncus purus erat ac quam.</p></blockquote>
<p class="signature">Sign : M@teo21</p>
Vous ne pouvez pas modifier l'alignement du texte d'une balise inline (comme span, a, em, strong...).
L'alignement ne fonctionne que sur des balises de type block (p, div, blockquote, h1, h2, ...), et c'est
un peu logique quand on y pense : on ne peut pas modifier l'alignement de quelques mots au milieu
d'un paragraphe !
C'est donc en gnral le paragraphe entier qu'il vous faudra aligner.
22
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
L'indentation
Qu'est-ce que l'indentation ? C'est tout simplement la mise en retrait du texte. Cela permet par
exemple de faire commencer un paragraphe un peu plus droite, ce qui rend la lecture beaucoup
plus facile et agrable. C'est un procd que l'on retrouve dans la plupart des livres d'ailleurs.
Voici un exemple de paragraphe indent :
Texte indent
On utilise la proprit text-indent. On doit indiquer quelle est la taille du retrait : on peut le faire en
pixels, en centimtres, en millimtres...
Bref, l le mieux mon avis c'est d'utiliser les pixels. Regardez, comment on met tous les textes des
paragraphes en retrait avec text-indent :
Code : CSS
1p
2{
3 text-indent: 30px; /* Les paragraphes commenceront 30 pixels sur la droite */
4 text-align: justify; /* Ils seront justifis */
5 font-size: large; /* Allez, soyons fous, grossissons le texte :o;) */
6}
L'avantage en CSS, c'est qu'il vous suffit de dire une fois pour toutes : "On veut que tous mes
paragraphes soient indents de 30 pixels sur la droite" et chaque fois que vous crirez un nouveau
paragraphe, celui-ci sera automatiquement mis en retrait.
Avant le XHTML ( l'poque du HTML) ce genre de chose tait impossible, ou plutt difficile et
rptitif.
A noter 2 proprits similaires :
23
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Mettre en italique
On a la possibilit de mettre en italique en CSS, c'est donc utile juste des fins de prsentation.
Parce que, le CSS sert uniquement la prsentation de vos pages web.
Concrtement, pour mettre en italique en CSS on utilise font-style, qui peut prendre 3 valeurs :
1 em
2{
3 font-style: normal;
4}
Sur l'exemple suivant, on se sert par exemple de font-style pour mettre en italique tous mes titres
<h2> :
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
h1
{
text-align: center;
font-family: Arial, "Times New Roman", Verdana, serif;
}
h2
{
font-style: italic; /* Les titres h2 seront en italique ! */
text-indent: 30px; /* On dcale un peu les sous-titres */
font-family: Arial, "Times New Roman", "Arial Black", Verdana, serif;
}
24
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Mettre en gras
La mise en gras en CSS permet de mettre en gras par exemple les titres, certains paragraphes entiers
etc...
La proprit CSS pour mettre en gras est font-weight, et prend les valeurs suivantes :
On n'a qu' s'en servir pour mettre les paragraphes en gras, tenez :
Code : CSS
1p
2{
3 font-weight: bold;
4}
Code : CSS
1p
2{
3 font-variant: small-caps;
4}
Mais, il y a une seconde proprit CSS qui travaille sur les majuscules elle aussi : text-transform. Elle
peut prendre ces valeurs :
Regardez en particulier comment on se sert des class pour crer (entre autres) une class
pousser_une_gueulante.
Code : HTML
<h1>Je suis trs en colre...</h1>
1
2
3
4
5
<p>...mais je vais essayer de rester calme. Enfin, si possible, mais je promets rien hein...<br />
<span class="pousser_une_gueulante">ahhhh !!! non cette fois je craque ! qui c'est qui a mis de la mayo dans
mes frites !??<br />sacrilge !</span></p>
<p class="chuchoter">CECI EST UN PARAGRAPHE QUE JE CHUCHOTE, ALORS QUE POURTANT DANS LE CODE
XHTML IL EST ECRIT EN MAJUSCULES</p>
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
h1
{
text-align: center;
font-family: Arial, "Times New Roman", Verdana, serif;
text-transform: capitalize; /* Les premires lettres des mots du titre seront en majuscules */
}
.pousser_une_gueulante
{
text-transform: uppercase; /* Si j'ai envie de me faire entendre, je mets en majuscules */
}
.chuchoter
{
text-transform: lowercase;
font-style: italic; /* Le texte chuchot sera en minuscules et italique */
}
Cette proprit text-transform est vraiment pratique pour changer l'apparence de tout un texte en
un clin d'oeil !
Comme quoi, le CSS n'est pas que bon aligner le texte et changer la police. Il peut aussi agir
directement sur un texte dj crit pour modifier ses majuscules / minuscules.
Un peu de dcoration ?
Cette proprit CSS porte bien son nom : text-decoration
Elle permet, entre autres, de souligner le texte. Voici les diffrentes valeurs qu'elle peut prendre :
underline : soulign.
line-through : barr.
overline : ligne au-dessus.
blink : clignotant. Attention, cette proprit ne marche pas sous Internet Explorer ni sous
Google Chrome. Elle fonctionne en revanche bien sur tous les autres navigateurs, dont
Mozilla Firefox.
none : normal (par dfaut).
26
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
h1
{
text-align: center;
font-family: "Arial Black", Arial, "Times New Roman", serif;
text-decoration: blink; /* Le titre sera clignotant ! (ne fonctionne pas sous Internet Explorer) */
}
.souligne
{
text-decoration: underline;
}
.barre
{
text-decoration: line-through;
}
.ligne_dessus
{
text-decoration: overline;
}
N'oubliez pas que l'intrt du CSS c'est aussi de pouvoir cumuler les styles. La class "souligne" ne fait
que souligner pour l'exemple, mais dans la pratique on cre souvent des class combinant les styles,
comme par exemple une class "important" qui souligne le texte, le met en gras, et l'crit en plus gros.
Le seul dfaut de cette mthode est qu'il n'existe que 16 couleurs dites "standard". D'autres couleurs
officieuses existent, mais comme elles ne fonctionneront pas forcment pareil sur tous les
navigateurs.
Voici les 16 couleurs que vous pouvez utiliser en tapant simplement leur nom :
Couleur
Aperu
Couleur
white
yellow
silver
olive
gray
blue
black
navy
red
fuchsia
maroon
purple
lime
aqua
green
teal
Aperu
h1
{
text-align: center;
font-family: Arial, "Arial Black", "Times New Roman", serif;
text-decoration: underline;
color: green; /* Le titre en vert (pourquoi pas ?) */
}
p
{
text-indent: 20px;
color: blue; /* Les paragraphes en bleu */
}
strong /* ... et les mots importants en rouge clignotant ! */
{
color: red;
text-decoration: blink;
}
28
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
<h1>De toutes les couleurs</h1>
1
2
3
4
5
<p>Salut et bienvenue dans cette page haute en couleurs ! J'utilise des <strong>noms de couleurs
standards</strong> dans mon CSS pour gayer un peu la page. Ainsi, "red" signifie "rouge", "blue" signifie
"bleu" etc.</p>
<p>Grce l'attribut <em>color</em> du CSS, on a (entre autres) pu convertir
<strong>automatiquement</strong> tous les mots importants (dans une balise "strong" ;) ) en textes rouge
clignotant ! Comme cela, on ne risque pas de les louper ;o)</p>
La notation hexadcimale
Il existe plusieurs faons en CSS de choisir une couleur parmi toutes celles qui existent.
Un nom de couleur en hexadcimal, cela ressemble cela : #FF5A28. Pour faire simple, c'est une
combinaison de lettres et de chiffres qui indiquent une couleur.
On doit toujours commencer par crire un dise (#), suivi de 6 lettres ou chiffres allant de 0 9 et de
A F.
Ces lettres ou chiffres fonctionnent deux par deux. Les 2 premiers indiquent une quantit de rouge,
les 2 suivants une quantit de vert, et les 2 derniers une quantit de bleu. En mlangeant ces
quantits (qui sont les composantes Rouge-Vert-Bleu de la couleur) on peut obtenir la couleur qu'on
veut.
La mthode RGB
Que signifie RGB ? En anglais, Rouge-Vert-Bleu s'crit Red-Green-Blue, ce qui s'abrge en "RGB".
Comme pour la notation hexadcimale, on doit dfinir une quantit de rouge, de vert et de bleu pour
choisir une couleur.
29
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Oui, mais l vous allez voir que c'est beaucoup plus pratique et qu'avec un logiciel de dessin tout
simple comme Paint, vous pouvez trouver la couleur que vous dsirez.Voici la marche suivre :
1. Lancez le logiciel Paint depuis le menu Dmarrer.
2. Rendez-vous dans le menu Couleurs / Modifier les couleurs :
3. Une fentre s'ouvre. Cliquez sur le bouton "Dfinir les couleurs personnalises" en bas. Dans
la zone qui apparat droite, faites bouger les curseurs pour slectionner la couleur qui vous
intresse.
4. Supposons quon veut crire les titres <h1> en rose barbie (supposons seulement). Je
slectionne la couleur dans la fentre, comme ceci :
30
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Comme vous avez pu le constater dans l'exemple, pour utiliser la mthode RGB il faut taper
rgb(Rouge, Vert, Bleu) en remplacelant "Rouge, Vert, Bleu" par les nombres correspondants. Pour
votre information, ces nombres vont de 0 255.
Le fond
Contrairement ce qu'on pourrait croire, le fond ne dsigne pas forcment le fond de toute une
page web. On peut aussi appliquer un fond uniquement aux titres, ou aux paragraphes, ou encore
certains mots d'un paragraphe.
Il faut tout d'abord savoir qu'il existe 2 types de fonds :
Nous allons commencer nous intresser la couleur de fond dans un premier temps, puis nous
verrons comment faire pour avoir une image de fond.
31
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
La couleur de fond
Pour indiquer une couleur de fond, on utilise la proprit CSS background-color. Elle s'utilise de la
mme manire que la proprit color, c'est--dire que vous pouvez taper le nom d'une couleur,
l'crire en notation hexadcimale ou encore utiliser la mthode RGB.
Pour indiquer la couleur de fond de la page web, il faut travailler sur la balise <body>. Eh oui, <body>
correspond toute la page web, c'est donc en modifiant sa couleur de fond que l'on changera la
couleur de fond de la page web.
Regardez trs attentivement ce fichier CSS :
32
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : CSS
1 body /* On travaille sur la balise body, donc sur TOUTE la page */
2{
3 background-color: black; /* Le fond de la page sera noir */
4 color: white; /* Le texte de la page sera blanc */
5}
En CSS, si vous appliquez un style une balise, toutes les balises qui se trouvent l'intrieur de cette
balise prendront le mme style. Ce phnomne s'appelle l'hritage.
C'est en fait simple comprendre et intuitif. La balise <body>, vous le savez, contient entre autres les
balises de paragraphe <p> et de titre <h1>.
Si, on applique une couleur de fond noire et une couleur de texte blanche la balise <body>, tous les
titres et paragraphes auront eux aussi une couleur de fond noire et un texte de couleur blanche...
C'est ce phnomne qui s'appelle l'hritage : on dit que les balises qui se trouvent l'intrieur d'une
autre balise "hritent" de ses proprits.
Cela veut dire que TOUT le texte de la page web sera forcment crit en blanc ?
Non, pas obligatoirement. Si vous dites par la suite que vous voulez vos titres en rouge, ce style aura
la priorit et vos titres seront donc en rouge. En revanche, si vous n'indiquez rien de particulierp,
alors vos titres hriteront de la couleur blanche.
Cela ne fonctionne pas uniquement pour la couleur, entendons-nous bien. Toutes les proprits CSS
seront hrites : vous pouvez par exemple demander une taille de texte de "1.3em" dans la balise
<body>, et tous vos titres et paragraphes seront de cette taille-l.
Voici un exemple o je vous montre comment on "annule" l'hritage pour que nos titres ne soient
pas crits en blanc. On a profit pour crer une class "surligne" qui met le texte sur fond jaune pour
donner une impression de surlignage.
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
body
{
background-color: black;
color: white; /* Toutes les balises contenues dans body verront leur texte color en blanc... */
}
h1
{
color: red; /* ... sauf si je demande expressment de changer la couleur par la suite */
}
.surligne /* Un style qui permet par exemple de surligner certains mots d'un texte */
{
background-color: yellow;
color: black; /* Le texte surlign sera crit en noir, parce que le blanc sur fond jaune on voit rien ;o) */
}
33
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Comme vous pouvez le constater, on n'a pas indiqu de couleur particulire pour les paragraphes
(<p>), donc ils ont hrit de la couleur blanche. En revanche, le titre n'a pas hrit de la couleur
blanche car on a crit qu'on voulait qu'il soit en rouge.
La class "surligne" vous montre qu'on peut sans problme appliquer une couleur de fond certains
mots d'un texte.
L'image de fond
Tout comme pour la couleur de fond, l'image de fond ne s'applique pas forcment la page entire,
on peut tout aussi bien mettre une image de fond aux titres, paragraphes, citations etc...
La proprit permettant d'indiquer une image de fond est background-image. Comme valeur, on doit
lui mettre url("nom_de_l_image.png"). Par exemple :
background-image:url("fond.png");
Le fond n'est pas forcment en PNG, il peut aussi tre en JPEG ou en GIF.
L'adresse indiquant o se trouve l'image de fond peut tre en absolu (http://...) ou en relatif
(fond.png).
Attention lorsque vous mettez une adresse en relatif dans le fichier CSS ! L'adresse de l'image doit
tre indique par rapport au fichier .css et non pas par rapport au fichier .html.
Ainsi, si votre site comporte 2 dossiers : "css" et "images", il vous faudra taper : "../images/fond.png"
pour rcuprer l'image de fond. Si vous ne mettez pas le chemin correct, votre image de fond ne
s'affichera pas.
Si on veut appliquer une image de fond toute la page, on doit l encore utiliser la balise <body> :
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
body
{
background-image: url("../images/neige.png");
}
h1
{
font-style: italic;
font-family: "Arial Black", Arial, Verdana, serif;
text-align: center;
}
blockquote p /* Tous les paragraphes contenus dans un blockquote */
{
text-align: justify;
text-indent: 25px;
}
34
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Il existe par ailleurs une proprit CSS qui permet de "fixer" le fond, pour ne pas qu'il bouge en
mme temps que le texte.
La proprit concerne rpond au doux nom de background-attachment et peut prendre 2 valeurs :
En rutilisant le mme fichier XHTML que tout l'heure, mais en changeant un peu le CSS pour y
rajouter background-attachment, on obtient ceci :
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
body
{
background-image: url("../images/neige.png");
background-attachment: fixed; /* Le fond restera fixe */
}
h1
{
font-style: italic;
font-family: "Arial Black", Arial, Verdana, serif;
text-align: center;
}
blockquote p
{
text-align: justify;
text-indent: 25px;
}
Essayez de descendre plus bas dans la page avec les barres de dfilement, vous verrez que le fond
reste fixe
Il reste encore 2 proprits en rapport avec les images de fond.
La premire d'entre elle est celle qui gre la rptition de l'image de fond. Cette proprit s'appelle
background-repeat et peut prendre ces valeurs :
no-repeat : le fond ne sera pas rpt. L'image sera donc unique sur la page.
repeat-x : le fond sera rpt uniquement sur la premire ligne, horizontalement.
repeat-y : le fond sera rpt uniquement sur la premire colonne, verticalement.
repeat : le fond sera rpt (par dfaut).
On peut indiquer o doit se trouver l'image de fond avec background-position. Cette proprit n'est
intressante que si vous avez mis "background-repeat: no-repeat;" (un fond qui ne se rpte pas).
Vous devez donner background-position 2 valeurs en pixels pour indiquer la position du fond par
rapport au coin suprieur gauche de la page (ou du paragraphe si vous appliquez le fond un
paragraphe). Ainsi, si vous tapez :
background-position:30px 50px;
35
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
... votre fond sera plac 30 pixels de la gauche et 50 pixels du haut. Il est aussi possible de mettre
ces valeurs en anglais :
top : en haut.
bottom : en bas.
left : gauche.
center : centr.
right : droite.
Il est possible de combiner ces mots. Par exemple, pour aligner une image en haut droite, vous
taperez : background-position: top right;
Allez, pour ce dernier exemple, on va rutiliser toutes les proprits sur le fond qu'on a apprises.
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
body
{
background-image: url("../images/skieur.gif"); /* Le fond est l'image "skieur.gif" */
background-repeat: no-repeat; /* Le fond ne se rpte pas */
background-position: top right; /* Le fond est align en haut droite */
background-attachment: fixed; /* Le fond est fix */
}
h1
{
font-style: italic;
font-family: "Arial Black", Arial, Verdana, serif;
text-align: center;
}
blockquote p
{
text-align: justify;
text-indent: 25px;
}
Si vous utilisez beaucoup de proprits en rapport avec le background (comme c'est le cas sur cet
exemple), vous pouvez utiliser une sorte de "mga-proprit" background qui peut prendre plusieurs
valeurs combines des proprits background-image, background-repeat, background-attachment et
background-position.
C'est la premire "mga-proprit" qui est prsent. Pour toutes les "mga-proprits" comme
background, il faut savoir que :
L'ordre des valeurs n'a pas d'importance. Vous pouvez combiner les valeurs dans n'importe
quel ordre :
background: url("../images/skieur.gif") no-repeat top right fixed;
background: no-repeat fixed top right url("../images/skieur.gif");
Vous n'tes pas obligs de mettre toutes les valeurs. Ainsi, si vous ne voulez pas mettre fixed,
vous pouvez l'enlever sans problme :
background:url("../images/skieur.gif") no-repeat top right;
La "mga-proprit" n'est intressante que si vous avez plusieurs valeurs combiner bien entendu.
L'exemple ci-dessous donne le mme rsultat que l'exemple prcdent, mais il utilise background
36
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
37
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
body
{
background: url("../images/skieur.gif") no-repeat top right fixed;
}
h1
{
font-style: italic;
font-family: "Arial Black", Arial, Verdana, serif;
text-align: center;
}
blockquote p
{
text-align: justify;
text-indent: 25px;
}
Une dernire chose : dans tous ces exemples, on a appliqu un fond la page entire (body). Mais
cela ne doit pas vous faire oublier qu'on peut appliquer un fond n'importe quel lment (un titre,
un paragraphe, certains mots d'un paragraphe etc)...
Au passage de la souris
Le premier pseudo-format s'appelle :hover. Comme tous les autres pseudo-formats que nous allons
voir, c'est une information que l'on rajoute aprs le nom de la balise (ou de la class) dans le CSS,
comme ceci :
Code : CSS
1 a:hover
2{
3
4}
a
{
text-decoration: none; /* Les liens ne seront plus souligns */
color: red; /* Les liens seront en rouge au lieu de bleu */
font-style: italic; /* Les liens seront en italique */
}
a:hover /* Quand le visiteur pointe sur le lien */
{
text-decoration: underline; /* Le lien deviendra soulign quand on pointera dessus */
color: green; /* Le lien sera crit en vert quand on pointera dessus */
}
La bonne nouvelle, c'est que vous pouvez appliquer le pseudo-format ":hover" n'importe quelle
balise.
La mauvaise nouvelle, c'est que pour Internet Explorer 6 le ":hover" ne marche que sur les liens. Sous
Internet Explorer 7, il marche en thorie sur toutes les balises, mais il y a quand mme quelques
bugs.
Sur tous les autres navigateurs cela fonctionne la perfection.
39
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Voici un exemple d'utilisation du :hover sur un paragraphe ( tester avec un autre navigateur que IE):
40
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : CSS
1 p:hover /* Quand on pointe sur un paragraphe */
2{
3 background-color: #CFE1EB; /* Le fond du paragraphe change de couleur */
4 text-indent: 20px;
5}
Au moment du clic
Le pseudo-format :active permet d'appliquer un style particulier au moment du clic. Le lien gardera
cette apparence trs peu de temps : juste pendant que vous cliquez avec le bouton de la souris. En
clair, ce n'est pas forcment toujours bien visible.
Lapplication de :active ici, permettra de changer la couleur de fond du lien :
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
L'avantage de cette technique, c'est que si le navigateur est IE, il prendra uniquement le :active (et le
fond sera un peu color), tandis que si c'est un autre navigateur le fond restera plus longtemps grce
au :focus.
42
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Bon, plus srieusement, si vous voulez appliquer un style prcis des liens dj visits, vous pouvez
les colorer les liens lgrement plus clairs que la normale. Si vos liens sont verts en temps normal,
mettez-les en vert clair lorsqu'ils ont t visits.
La premire lettre
Pour modifier l'apparence de la premire lettre, vous devez utiliser le pseudo-format :first-letter
On peut s'en servir pour crire en gras et en plus gros la premire lettre de tous les paragraphes de
votre page.
Code : CSS
1
2
3
4
5
6
7
8
9
10
43
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
La premire ligne
Un autre pseudo-format intressant permet de modifier cette fois la premire ligne. Il s'agit de :firstline.
Appliqu aux paragraphes, il permet d'inciter la lecture du texte. Par exemple, vous pourriez
automatiquement crire en petites capitales la premire ligne de chaque paragraphe, afin de les
rendre plus attrayants :
Code : CSS
1
2
3
4
5
6
7
8
Avant / Aprs
Les pseudo-formats que nous allons voir maintenant sont trs intressants et changent un peu de ce
qu'on a l'habitude de faire en CSS. C'est toutefois un peu plus difficile que le reste.
Maintenant, supposons quon souhaite automatiser l'insertion du texte "Question : " au dbut et du
point d'interrogation la fin, pour ne pas avoir les rpter 50 fois dans le code XHTML.
On va crer une class "question" qui permettra de mettre en forme automatiquement toutes les
questions de mon texte.
44
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
<p>J'ai cr le Site du Zr0 parce que j'en avais marre de ne pas trouver de tutoriels corrects sur
Internet.</p>
<p class="question">De quand date ce site</p>
<p>Il a t cr aux alentours de 1999</p>
<p class="question">Quel a t le premier nom du site</p>
<p>Il n'a jamais chang de nom, il s'est toujours appel "Site"</p>
<p class="question">Combien de temps as-tu pass pour trouver un nom aussi ridicule</p>
<p>Environ 40 secondes. Oui je sais, c'est beaucoup vu le rsultat, mais que voulez-vous ;o)</p>
<p class="question">Quel est l'ge du webmaster</p>
<p>Eh quoi ? Qui cela moi ? Mon ge ne vous intresse pas allons allons.<br />Bon allez, une petite exclu,
avec cela vous saurez retrouver mon ge : j'ai commenc la cration de ce site l'ge de 14 ans.</p>
On va utiliser une proprit CSS nouvelle et un peu particulire qui nous permettra d'insrer du texte
: content
Regardez comment on :before et :after sur les paragraphes quips de la class "question" :
Code : CSS
1
2
3
4
5
6
7
8
Vous n'tes pas obligs de mettre uniquement la proprit content avec un :before ou :after, vous
pouvez aussi utiliser tous les styles CSS que vous connaissez. Ces styles s'appliqueront au texte
rajout par le :before ou :after.
45
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : CSS
1
2
3
4
5
6
7
8
9
10
.question:before
{
content: "Question : ";
font-weight: bold; /* "Question" sera en gras */
color: blue; /* "Question" sera en bleu */
}
.question:after
{
content: " ?";
}
.question:before
{
content: url("../../images/qst.gif"); /* Mettre une image de question */
}
.question:after
{
content: " ?";
}
N'oubliez pas que le chemin relatif vers l'image se fait partir de la position du fichier CSS et non pas
du fichier XHTML. Si vous vous trompez dans le chemin, l'image ne s'affichera pas.
46
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Nous allons voir comment on cre chacune de ces listes puces. En effet, contrairement ce qu'on
pourrait croire les listes puces sont trs utilises : elles servent notamment crer le menu de
votre site web !
Fraises
Framboises
Cerises
C'est un systme qui nous permet de faire une liste d'lments, sans notion d'ordre (il n'y a pas de
"premier" ni de "dernier"). Crer une liste puce non ordonne est trs simple. Il suffit d'utiliser la
balise <ul> que l'on referme un peu plus loin avec un </ul>.
Commencez donc taper ceci :
Code : HTML
1 <ul></ul>
Et maintenant, voil ce qu'on va faire : on va crire chacun des lments de la liste entre 2 balises
47
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
<li></li>. Toutes ces balises doivent se trouver entre <ul> et </ul>. Vous allez comprendre de suite
avec cet exemple :
Code : HTML
1 <ul>
2 <li>Fraises</li>
3 <li>Framboises</li>
4 <li>Cerises</li>
5 </ul>
Pour ceux qui ont besoin de faire des listes complexes, sachez que vous pouvez imbriquer des listes
puces (crer une liste puce DANS une liste puces). Si vous voulez faire cela, ouvrez une seconde
balise <ul> l'intrieur d'un lment <li></li>
Si vous fermez les balises dans le bon ordre, il ne devrait pas y avoir de problme.
Liste ordonne
Pour faire une liste ordonne, on ne va pas se fouler. On utilise <ol></ol>.
A l'intrieur, on utilise toujours des balises <li></li>.
L'ordre dans lequel vous mettez les lments de la liste est important. Le premier <li></li> sera
l'lment n1, le second sera le n2 etc...
Comme c'est particulirement intuitif, je vous laisse admirer la simplicit de cet exemple :
Code : HTML
1 <ol>
2 <li>Je me lve</li>
3 <li>Je mange et je bois</li>
4 <li>Je retourne me coucher</li>
5 </ol>
Liste de dfinitions
L par contre, c'est diffrent des exemples prcdents. Le principe de base est le mme. On indique
le dbut et la fin de la liste l'aide d'une balise. Ici il ne s'agit pas de <ul>, ni de <ol> mais de... <dl>
(c'est l'abrviation de "Definition List")
48
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Les mots
Et leur dfinition
Les lments de la liste puce fonctionnent donc ici par paire. Une fois qu'on a compris qu'il faut
taper d'abord le mot, puis sa dfinition.
49
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
.pas_de_retrait
{
list-style-position: inside;
}
.retrait
{
list-style-position: outside;
}
51
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
En pratique, on ne dsactive pas le retrait des listes puces, sauf quand on se sert des listes pour
crer le menu de son site.
Reprsentation de la puce
Nettement plus intressante, la proprit list-style-type vous permet de changer l'apparence de la
puce. En effet, vous n'tes pas obligs d'avoir une puce sous forme de rond noir, pas plus que vous
n'tes obligs d'avoir des chiffres pour les listes numrotes (on peut utiliser des lettres : a, b, c, d...)
La proprit list-style-type peut prendre de nombreuses valeurs. Certaines d'entre elles concernent
uniquement les listes non ordonnes, d'autre concernent uniquement les listes ordonnes :
Il existe en ralit d'autres valeurs possibles pour les listes ordonnes, comme la numrotation
armnienne, gorgienne, hbraque, japonaise etc...
Et si on testait quelques-unes de ces listes puces modifies ? Voici le code XHTML qui va nous servir
de test.
52
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
53
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<li>Quatre</li>
</ol>
<p>Avec <em>upper-roman</em> :</p>
<ol class="chiffres_romains">
<li>Un</li>
<li>Deux</li>
<li>Trois</li>
<li>Quatre</li>
</ol>
<p>Avec <em>lower-greek</em> (<strong>Ne fonctionne pas sous IE</strong>) :</p>
<ol class="lettres_grecques">
<li>Un</li>
<li>Deux</li>
<li>Trois</li>
<li>Quatre</li>
</ol>
54
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
L'image de puce peut tre de n'importe quel type (PNG, GIF ou JPEG).
Attention cependant, l'image ne doit pas tre trop grande sinon elle sera coupe. Conseil : une taille
d'environ 15x15 pixels.
55
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
block : une balise de type "block" sur votre page web cre automatiquement un retour la
ligne avant et aprs. Il suffit d'imaginer tout simplement un bloc. Votre page web sera en fait
constitue d'une srie de blocks la suite les uns des autres. Mais vous verrez qu'en plus, il
est possible de mettre un block l'intrieur d'un autre, ce qui va augmenter
considrablement nos possibilits pour crer le design de notre site !
inline : une balise de type "inline" se trouve obligatoirement l'intrieur d'une balise "block".
Une balise inline ne cre pas de retour la ligne, le texte qui se trouve l'intrieur s'crit
donc la suite du texte prcdent, sur la mme ligne (c'est pour cela que l'on parle de balise
"en ligne").
56
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Sur fond bleu, vous avez tout ce qui est de type block.
Sur fond jaune, vous avez tout ce qui est de type inline.
Comme vous pouvez le voir, les blocks sont les uns en-dessous des autres.
La balise inline <a></a> se trouve l'intrieur d'une balise block, et le texte vient s'insrer sur la
mme ligne.
Quelques exemples
Afin de mieux vous aider assimiler quelles balises sont inline et quelles balises sont block, voici un
petit tableau listant quelques balises courantes.
Balises blocks
Balises inline
<p>
<em>
<blockquote>
<strong>
<h1>
<q>
<h2>
<a>
<ul>
<sup>
<ol>
<img />
...
...
<span></span> (inline) :
Code : HTML
Respectez la smantique !
Les balises universelles sont "pratiques" dans certains cas, certes, mais attention ne pas en abuser.
Voici 2 exemples :
Oui, vous allez me dire qu'au final le rsultat (visuel) est le mme.
Mais, tandis que les balises span et div ne signifient rien de particulier, les balises strong et h1
veulent dire quelque chose ! Strong signifie "important" et h1 signifie "titre principal".
En XHTML, on vous demande d'utiliser tant que possible des balises qui ont un sens : on appelle cela
respecter la smantique .
L'avantage c'est que si vous respectez ceci, votre code aura une certaine "logique". Lorsque le robot
de Google viendra rfrencer votre site, il "comprendra" le sens des balises et cela pourra amliorer
la position de votre position site dans le moteur de recherche.
La taille
Nous allons pour le moment travailler uniquement sur des balises de type "block".
Pour commencer, nous nous intressons la taille des blocks. Contrairement un inline, un block a
58
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Par dfaut, et c'est trs important savoir, un block prend 100% de la largeur disponible. Regardez
par exemple ce code XHTML qui n'utilise aucune proprit CSS :
59
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam lacinia leo ac nunc. Nulla aliquet.
Nullam quam leo, volutpat vitae, venenatis eget, blandit eu, augue. Proin ac libero nec magna laoreet tempus.
Nullam felis. Nam et libero. Sed velit dui, tempus in, nonummy venenatis, accumsan id, justo. Ut ullamcorper.
1 Cras sem diam, vulputate nec, tempor at, pretium at, magna. Pellentesque habitant morbi tristique senectus
et netus et malesuada fames ac turpis egestas. Curabitur sapien pede, malesuada ac, ultricies in, dignissim
eget, mauris. Nullam varius diam ac ligula. Morbi mattis posuere odio. Ut mattis risus ac erat. Nam volutpat,
nisl vitae venenatis mollis, ante erat tincidunt purus, nec ornare felis tellus sed purus. Phasellus orci.</p>
Rien de nouveau sur cet exemple. Cependant, il est trs important de noter que le paragraphe
(comme toutes les balises block) prend 100% de la largeur disponible par dfaut.
Maintenant, modifions le code CSS pour changer la largeur des paragraphes. Le CSS suivant montre
quon veut que tous mes paragraphes aient une largeur de 50%.
Code : CSS
1 p{
2 width: 50%;
3 text-align: justify; /* Texte justifi pour mieux voir la largeur du block */}
Les pourcentages seront utiles pour crer un design qui s'adapte automatiquement la rsolution de
lcran du visiteur.
Toutefois, il se peut que vous ayez besoin de crer des blocks ayant une dimension prcise en pixels :
Code : CSS
1 p{
2 width: 250px;
3 text-align: justify;
4}
Minimum et maximum
Il vous sera aussi trs pratique de demander ce qu'un block ait une taille minimale ou maximale.
C'est l qu'entrent en jeu les 4 proprits CSS suivantes :
60
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Attention cependant, ces proprits ne fonctionnent pas sous IE 6 et fonctionnent partiellement sous
IE 7. Evitez de les utiliser tant qu'IE 6 est encore assez rpandu.
Si le texte n'a pas assez de place, le block va s'agrandir de manire ce que tout soit visible. Si vous
voulez "couper" votre paragraphe pour qu'il soit d'une dimension exacte de 250x100, vous allez
devoir utiliser la proprit CSS overflow.
Les valeurs que peut prendre overflow sont les suivantes :
visible (par dfaut) : si le texte dpasse les limites de taille, le block est agrandi de manire
ce que tout soit visible. C'est ce que nous venons de constater.
hidden : si le texte dpasse les limites, il sera tout simplement coup. On ne pourra pas voir
tout le texte.
scroll : l encore, le texte sera coup s'il dpasse les limites. Sauf que cette fois, le navigateur
mettra en place des barres de dfilement pour qu'on puisse voir tout le texte. C'est un peu
comme un cadre l'intrieur de la page.
auto : mode "pilote automatique" :p. En gros, c'est le navigateur qui dcide ou pas de mettre
des barres de dfilement (il en mettra si c'est ncessaire).
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
61
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Les bordures
Le CSS vous offre un large choix de bordures pour dcorer votre page. Tellement large qu'il existe pas
mal de proprits CSS. Alors, nous allons ici montrer uniquement la mga-proprit qui regroupe
tout. : la mga-proprit : background, c'tait pour le fond de votre page web. La mga-proprit en
question, c'est border. C'est elle qui permet d'indiquer quelle bordure on applique au block.
Comme toute mga-proprit qui se respecte, vous pouvez lui mettre plusieurs valeurs (ici, il y a 3
valeurs utiliser). Vous n'tes pas obligs de mettre toutes les valeurs (vous pouvez vous contenter
de 2, ou d'une seule), et l'ordre dans lequel vous mettez ces valeurs n'a aucune importance.
La largeur : indiquez la largeur de votre bordure. Mettez une valeur en pixels (comme 2px),
ou utilisez un des mots-cl suivants :
o thin : bordure fine
o medium : bordure moyenne
o thick : bordure paisse
C'est le navigateur qui choisit le nombre de pixels qui correspond thin, medium et thick. En
gnral, c'est peu prs pareil sur tous les navigateurs.
La couleur : c'est la couleur de votre bordure. Utilisez, comme on l'a appris, soit un nom de
couleur ("black", "red"...), soit une valeur hexadcimale (#FF0000), soit une valeur rgb
(rgb(198, 212, 37)).
Le type de bordure : l, vous avez pas mal de choix. Votre bordure peut tre un simple trait,
ou des pointills, ou encore des tirets etc... Voici les diffrentes valeurs disponibles :
o none : pas de bordure (par dfaut)
o solid : un trait simple.
o dotted : pointills.
o dashed : tirets.
o double : bordure double.
o groove : en relief.
o ridge : effet 3D.
o inset : autre effet 3D (on a l'impression que le block forme un creux).
62
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
outset : encore un autre effet 3D (on a l'impression que le block est surlev).
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
p
{
}
.rien
{
border: none;
}
.solid
{
border: 2px solid black;
}
.dotted
{
border: 2px dotted green;
}
.dashed
{
border: 2px dashed red;
}
.double
{
border: 4px double maroon;
}
.groove
{
border: 4px groove teal;
}
.ridge
{
border: 4px ridge fuchsia;
}
.inset
{
border: 3px inset black;
}
.outset
{
border: 3px outset black;
}
63
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Qui a dit que vous tiez obligs de mettre la mme bordure aux 4 cts de votre block ?
Si vous voulez mettre des bordures diffrentes en fonction du ct (haut, bas, gauche ou droite),
vous pouvez le faire sans problme. Dans ce cas, vous devrez utiliser ces 4 proprits :
Ce sont aussi des mga-proprits, elles fonctionnent comme border mais ne s'appliquent donc qu'
un seul ct.
Voici quelques tests de bordures.
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
p
{
width: 350px;
}
h2
{
border-bottom: 2px solid black;
}
.haut_bas
{
border-top: 1px dashed red;
border-bottom: 1px dashed red;
}
.points
{
border-top: 3px dotted blue;
border-left: 2px solid green;
border-right: 2px solid green;
border-bottom: 3px dotted blue;
}
.tres_solide
{
border-left: 6px solid black;
border-right: 6px solid gray;
}
En particulier, vous remarquerez quon a appliqu une bordure en bas du titre. Cela n'a rien voir
avec un soulignement.
Par dfaut, un block (comme le titre) prend 100% de la largeur disponible. En l'occurence, le block
prend la largeur de toute la fentre. Le fait de mettre une bordure en bas du titre rvle qu'il prend
effectivement toute la largeur.
C'est une technique dcorative assez "classe" que d'utiliser un border-bottom sur un titre. Le titre
64
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
cre ainsi une ligne de sparation, ce qui rend votre page plus structure. En plus, c'est facile
utiliser.
Au fait, si vous voulez appliquer la mme bordure aux 4 cts de votre block, ne vous fatiguez pas
utiliser ces proprits. Utilisez plutt border qui s'applique tous les 4 cts simultanment.
<p>
Vous souhaitez vous rendre vers un endroit magique ? Rien de plus simple, cliquez sur l'image ci-dessous
:<br />
<a href="http://www.siteduzero.com"><img src="images/hawai.jpg" alt="Photo de Hawaii" title="Clique
pour voyager !" /></a>
</p>
Maintenant, avec la proprit border du CSS vous allez pouvoir viter ce petit dsagrment :
Code : CSS
1 a img /* Toutes les images contenues dans un lien */
2{
3 border: none; /* Pas de bordure */
4}
Pour ceux qui auraient (dj) oubli, j'ai utilis l'imbrication. Si on tape "a img", cela signifie "Toutes
les balises <img> contenues dans un lien <a>"... Et si vous rflchissez bien, c'est exactement ce
qu'on veut : enlever la bordure qui apparat autour des images qui sont contenues dans des liens.
65
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Les marges
Bien comprendre les marges, c'est vital. Si vous ne savez pas prcisment comment fonctionnent les
marges des blocks, vous serez bien embts lors de la cration de votre design !
Tous les blocks possdent des marges. Ce qui est important, c'est de savoir qu'il existe 2 types de
marges:
Sur ce block, on a mis une bordure pour qu'on repre mieux ses bords.
L'espace entre le texte et la bordure est la marge intrieure (en vert).
L'espace entre la bordure et le prochain block est la marge extrieure (en rouge).
En CSS, on peut modifier la taille des marges avec les 2 proprits suivantes :
66
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Pour bien voir les marges, prenons 2 paragraphes auxquels on met simplement une petite bordure :
Code : CSS
1p
2{
3 width: 350px;
4 border: 1px solid black;
5 text-align: justify;
6}
Comme vous pouvez le constater, il n'y a par dfaut pas de marge intrieure (padding). En revanche,
il y a une marge extrieure (margin). C'est cette marge qui fait que 2 paragraphes ne sont pas colls
et qu'on a l'impression de "sauter une ligne".
Les marges par dfaut ne sont pas les mmes pour toutes les balises block. Essayez d'appliquer ce
CSS des balises <div> qui contiennent du texte par exemple, vous verrez que l il n'y a par dfaut ni
marge intrieure, ni marge extrieure !
Supposons quon veuille rajouter une marge intrieure de 12px aux paragraphes :
Code : CSS
1p
2{
3 width: 350px;
4 border: 1px solid black;
5 text-align: justify;
6 padding: 12px; /* Marge intrieure de 12px */
7}
Maintenant, on veut que les paragraphes soient plus espacs entre eux. on rajoute la proprit
margin pour demander ce qu'il y ait 50px de marge entre 2 paragraphes :
Code : CSS
1p
2{
3 width: 350px;
4 border: 1px solid black;
5 text-align: justify;
6 padding: 12px;
7 margin: 50px; /* Marge extrieure de 50px */
8}
67
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
top : haut,
bottom : bas,
left : gauche,
right : droite.
Bon, pour tester on va utiliser margin-bottom pour indiquer un espace en bas de chaque paragraphe,
ce qui nous vitera d'avoir une marge gauche comme tout l'heure.
On va rajouter une marge gauche pour le titre (h1) afin qu'il soit un peu dcal.
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
p
{
width: 350px;
border: 1px solid black;
text-align: justify;
padding: 12px;
margin-bottom: 50px;
}
h1
{
margin-left: 30px;
68
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
13 }
Ainsi, le navigateur centre automatiquement les paragraphes. N'oubliez pas, que le margin:auto ne
peut fonctionner que si vous avez indiqu une largeur prcise pour votre block !
69
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Dans cette seconde partie, nous allons apprendre les positionner. Bah oui, il va bien falloir
apprendre dire : "Je veux que mon menu soit gauche, que mon contenu soit droite, qu'il y ait le
logo de mon site en haut droite 12 pixels du bord droit" etc...
Autant que les choses soient claires : le positionnement en CSS, c'est pas franchement vident... Il y a
la thorie, et il y a la pratique. Dans ce chapitre, nous verrons seulement la thorie (c'est un passage
oblig), et dans le chapitre suivant nous passerons la pratique (ce qui sera beaucoup plus concret
pour vous)
Une chose est sre, et vous devriez dj vous mettre cela en tte, c'est que vous ne pourrez jamais
avoir un site qui s'affiche pareil au pixel prs sur tous les navigateurs. A la place, nous apprendrons
faire en sorte que notre site s'affiche " peu prs correctement" sur chacun de ces navigateurs, et
cala sera dj pas si mal
Sommaire du chapitre :
Pour transformer une balise inline en balise de type block, vous allez devoir taper :
display:block;
Par exemple, si nous voulons que TOUTES nos images soient de type block, nous crirons donc ceci :
Code : CSS
1
2
3
4
img
{
display: block;
}
Attention, aprs avoir fait cela toutes vos images vont aller automatiquement la ligne, comme le
font les autres balises de type block.
Rien n'impose que TOUTES les images soient de type block. On peut trs bien utiliser l'attribut "class"
70
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Bien entendu, il faudra crire le code CSS suivant pour que la deuxime image soit de type block :
Code : CSS
1
2
3
4
.imageblock
{
display: block;
}
Et l'inverse alors ? Pour transformer une balise de type block en balise de type inline ?
C'est pareil, sauf qu'on utilise display:inline;
Petite remarque en passant : on transforme gnralement des inline en block, mais on fait plus
rarement l'inverse. Il faut dire que les balises block ont pas mal d'avantages : on peut modifier leur
taille, leur bordure, leurs marges etc...
Les flottants
La premire technique que nous allons voir, ce sont les flottants. Pour que vous voyiez bien de quoi
on parle, voici ce que nous allons apprendre faire :
Une image flottant gauche
Une image flottant droite
Cela permet en gros d'"entourer" un lment (ici une image) par du texte. Ca permet d'avoir une
jolie prsentation facilement. La proprit magique qui fait flotter est... float ("flottant" en anglais).
Cette proprit peut prendre 2 valeurs, que vous pourriez d'ailleurs avoir devin tous seuls :
L'utilisation des flottants est trs simple. En fait, il n'y a que 2 choses faire :
1. Vous appliquez un float une balise.
2. Puis vous continuez crire du texte la suite normalement.
On peut aussi bien utiliser la proprit float sur des balises block que sur des balises inline.
71
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
1
2
3
4
Une erreur courante que l'on a tendance faire, c'est de mettre l'image flottante aprs le texte. Non,
il ne faut pas : le flottant doit tre avant le texte, qu'il flotte droite ou qu'il flotte gauche c'est
pareil.
Vous essaierez de mettre la balise <img /> aprs le paragraphe, et vous verrez que cela ne marche
plus
Ce qu'il faut bien comprendre maintenant, c'est qu'on a juste besoin de modifier le CSS de l'image, et
non pas du paragraphe. Le paragraphe n'a pas besoin d'tre modifi, il sera automatiquement plac
comme il faut.
Voici le seul bout de code CSS qu'on a besoin de taper, qui permet de faire flotter l'image gauche :
Code : CSS
1
2
3
4
.imageflottante
{
float: left;
}
Amusez-vous aussi faire flotter l'image droite : mettez float:right; et le tour est jou !
La seule consigne, c'est d'utiliser le code XHTML suivant, que vous n'avez pas le droit de changer :
Code : HTML
<p>Les visiteurs de l'hypermarch Carrefour de Haidian, un quartier nord de Pkin o sont installes les
universits et les entreprises high-tech, ne sont pas accueillis en ce moment par le Pre Nol mais par... la
Vnus de Milo. Carrefour a dcid de donner dans le culturel en prsentant, dans le cadre de l'anne de la
1
France en Chine, quarante reproductions de sculptures clbres issues de collections des muses francelais.
L'initiative remporte un grand succs, en croire le nombre de personnes qui se prennent en photo devant
les oeuvres, ou l'affluence aux visites commentes par des guides.</p>
Votre consigne, c'est de crer un fichier CSS qui permettra de crer cette prsentation sous forme de
lettrine. Vous ne pouvez pas modifier le fichier XHTML, mais par contre sur le CSS tous les coups sont
permis : vous pouvez utiliser les proprits que vous voulez.
Bien videmment il faut utiliser un float:left;, mais comment faire pour que la premire lettre
uniquement soit affecte ? Sans changer le XHTML ? Il faut utiliser le pseudo-lment : first-letter (=
"premire lettre").
Il faut penser en particulier utiliser font-size, pour modifier la taille de la premire lettre pour
qu'elle fasse disons... 3 hauteurs de lignes. Pour cela, on peut mettre la valeur "3em" (= 3 hauteurs
de lignes), mais si vous avez tap "300%" c'est tout aussi bon ! Par contre, il vaut mieux viter de
mettre une valeur en pixels comme "50px" parce qu'on ne connat pas la taille d'une ligne (cela peut
changer).
Voici le code que pour raliser la lettrine :
Code : CSS
1
2
3
4
5
6
7
8
Stopper un flottant
Quand vous mettez en place un flottant, le texte l'"entoure".
Mais comment faire si vous voulez qu'au bout d'un moment le texte continue en-dessous du
flottant? On pourrait faire plusieurs <br /> la suite, mais cela ne serait pas pratique ni trs propre...
73
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Il existe en fait une proprit CSS qui permet de dire : "Stop, ce texte doit tre en-dessous du flottant
et non plus ct". C'est la proprit clear qui peut grosso modo prendre 3 valeurs :
Pour simplifier, on va utiliser tout le temps le clear:both, qui marche aprs un flottant gauche et
aprs un flottant droite (cela marche tous les coups quoi).
Pour illustrer son fonctionnement, on va prendre ce code XHTML :
Code : HTML
1 <p><img src="../images/flash.gif" class="imageflottante" alt="Image flottante" /></p>
2 <p>Ce texte est crit ct de l'image flottante.</p>
3 <p class="dessous">Ce texte est crit sous l'image flottante.</p>
Code : CSS
1
2
3
4
5
6
7
8
.imageflottante
{
float: left;
}
.dessous
{
clear: both;
}
Et voil le travail
On applique un clear:both; au paragraphe que l'on veut voir continuer sous l'image flottante, et le
tour est jou !
Le positionnement absolu : il nous permet de placer un block n'importe o sur la page (en
haut gauche, en bas droite, tout au centre etc...)
Le positionnement fixe : c'est pareil que le positionnement absolu, mais cette fois le block
reste toujours visible, mme si on descend plus bas dans la page. C'est un peu comme le
background-attachment:fixed; (si vous vous en souvenez encore ;))
74
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Le positionnement relatif : c'est le plus compliqu des trois. En gros, cela nous permet de
dplacer un block par rapport sa position normale.
Comme pour les flottants, le positionnement absolu, fix et relatif fonctionne aussi sur des balises de
type inline comme <img />
Toutefois, vous verrez qu'on l'utilise bien plus souvent sur des balises block que sur des balises inline.
Il faut d'abord faire son choix entre les 3 modes de positionnement disponibles. Pour cela, on utilise
la proprit CSS position laquelle on donne une de ces valeurs :
Le positionnement absolu
Vous savez que, pour effectuer un positionnement absolu, il faut taper :
position:absolute;
Mais cela ne suffit pas !
On a dit qu'on voulait un positionnement absolu, mais encore faut-il dire o on veut que le block soit
positionn sur la page.
Pour faire cela, on va rutiliser 4 proprits CSS que vous commencez certainement bien connatre:
On peut leur donner une valeur en pixels, comme "14px", ou bien une valeur en pourcentage,
comme "50%".
Si ce n'est pas trs clair pour certains d'entre vous, ce schma devrait vous aider comprendre :
75
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Avec cela, vous devriez tre capables de positionner correctement votre block
Il faut donc utiliser la proprit position et au moins une des 4 proprits ci-dessus (top, left, right ou
bottom). Si on crit par exemple :
position:absolute;
right:0px;
bottom:0px;
... cela signifiera que le block doit tre positionn tout en bas droite (0 pixels par rapport la droite
de la page, 0 par rapport au bas de la page).
Pour le coup, on va utiliser la balise universelle <div> (de type block).
Code : HTML
1
2
3
4
5
6
<p>
Ceci est un paragraphe normal.<br />
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer vel libero. Cras dolor. Quisque quis odio eget
justo pulvinar aliquet. Morbi luctus mi. Fusce leo. Integer eleifend condimentum felis. Phasellus vitae nibh.
Mauris pellentesque porta magna. Quisque at turpis. Praesent semper odio eget risus. Praesent bibendum
imperdiet massa. Quisque ac arcu ac augue dapibus vestibulum. Pellentesque gravida. Mauris turpis. Aenean
molestie. Praesent at quam et ligula pellentesque luctus.
</p>
<div>Block positionn</div>
76
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Rien d'extraordinaire, vous avez un paragraphe suivi d'un block div qui contient un peu de texte.
Jusque l, rien de bien excitant.
Maintenant, ajoutons un peu de CSS pour positionner o on veut notre block div :
Code : CSS
1
2
3
4
5
6
7
8
9
div
{
background-color: yellow;
border: 1px solid green;
position: absolute;
left: 35px;
top: 50px;
}
Le fond est jaune et une bordure pour qu'on repre mieux le block.
Comme vous pouvez le constater, le block se met au-dessus du paragraphe. Il le masque. Cela, c'est
un des grands avantages et dfauts du positionnement absolu : il n'y a aucun contrle, vous pouvez
mettre votre block vraiment o vous voulez sur la page, mais il faut faire attention ce qu'il ne
masque pas de texte.
Voici un autre exemple pour vous montrer qu'on peut vraiment mettre le block n'importe o :
Code : CSS
1
2
3
4
5
6
7
8
9
Div
{
background-color: yellow;
border: 1px solid green;
position: absolute;
right: 50%;
bottom: 20px;
Une petite prcision technique : si vous positionnez un block A en absolu, et qu' l'intrieur de ce
block vous positionnez un autre block B en absolu, ce positionnement-l ne se fera plus par rapport
au coin en haut gauche de la fentre mais par rapport au coin en haut gauche du block A.
Le positionnement fixe
Le fonctionnement est exactement le mme que pour le positionnement absolu, sauf que cette fois
le block reste fixe, mme si on descend plus bas dans la page.
77
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Au lieu de faire position:absolute;, on va taper position:fixed; dans notre CSS. Comme tout l'heure,
on s'aide de top, left, right et bottom pour placer notre block o on veut sur la page.
Le position:fixed; est particulirement utile pour faire un menu qui reste toujours visible :
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
div
{
background-color: yellow;
border: 1px solid green;
width: 150px;
height: 250px;
position: fixed;
right: 40px;
top: 60px;
}
p
{
width: 300px;
Le positionnement relatif
Plus dlicat, le positionnement relatif peut vite devenir une grosse prise de tte si on n'y fait pas trs
attention. Le positionnement relatif sert gnralement faire des "ajustements".
Prenons par exemple un texte important, situ entre 2 balises <strong>.
Pour commencer, mettons le sur fond rouge pour qu'on puisse mieux le reprer :
Code : CSS
1
2
3
4
5
strong
{
background-color: red; /* Fond rouge */
color: yellow; /* Texte de couleur jaune */
}
Cette fois, le schma pour les positions absolue et fixe ne marche plus. Pourquoi ? Parce que l'origine
a chang : le point de coordonnes (0, 0) ne se trouve plus en haut gauche de votre fentre comme
c'tait le cas tout l'heure. Non, cette fois l'origine se trouve en haut gauche de la position actuelle
de votre lment.C'est une position relative. Ce schma devrait vous aider comprendre o se
trouve l'origine des points :
78
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Donc, si vous faites un position:relative et que vous appliquez une des proprits top, bottom,
left, right, le texte sur fond rouge va se dplacer par rapport la position o il se trouve.
En fait, il faut faire des tests pour bien comprendre.
Prenons donc un exemple : On veut que le texte se dcale de 55 pixels vers la droite et de 10 pixels
vers le bas. On va donc demander ce qu'il soit dcal de 55 pixels par rapport au "bord gauche", et
de 10 pixels par rapport au "bord haut" :
Code : CSS
1
2
3
4
5
6
7
8
9
strong
{
background-color: red;
color: yellow;
position: relative;
left: 55px;
top: 10px;
}
Un fichier XHTML (.html ou .htm) : c'est dans ce fichier que se trouve le contenu de
la page (le texte). Ce fichier est constitu de balises comme <strong> qui servent
indiquer si tel texte est important, si c'est un paragraphe ou une citation etc...
Un fichier CSS (.css) : c'est le fichier qui permet de crer la prsentation de la page
web. C'est lui qui indique qu'un texte est en rouge, qu'il est centr, dans la police
"Arial" etc... En thorie, le CSS est facultatif. Ceci dit, sans CSS, nos pages web
seraient bien moches.
79
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Si vous avez bien suivi jusqu'ici et que vous avez fait quelques tests, vous savez par quoi on
commence :
1. En premier on tape le contenu de la page (XHTML),
2. Et ensuite on modifie la prsentation de la page (CSS).
80
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Primo, le XHTML
Premire tape : on ouvre notre diteur de texte (Notepad++ par exemple), et vous crez un
nouveau fichier XHTML.
Pour commencer, on va taper le code de "base" d'une page XHTML :
Code : HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11
strict.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
3
<head>
4
<title>Bienvenue sur mon site !</title>
5
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
6
</head>
7
<body>
8
9
</body>
10
</html>
Comme vous le savez, nous allons crire dsormais uniquement entre les balises
<body></body>.
81
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
La structure gnrale
Bien souvent, on structure sa page web l'aide de blocks <div>, la fameuse balise universelle
de type "block". On va avoir en gnral au moins 4 blocks, prsents comme ceci :
82
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
1. En haut, l'en-tte (aussi appel "header"). Cet en-tte contient en gnral le titre de
votre site, sous forme de bannire.
2. En-dessous, vous avez la partie principale de votre page avec :
A gauche ou droite, le menu.
De l'autre ct, le corps de la page, c'est--dire la partie qui contiendra le
texte de votre site.
3. Enfin, on met en gnral en bas un "pied de page" (aussi appel "footer"), dans
lequel on indique l'auteur du site, ventuellement son e-mail et un petit copyright
pour faire classe.
o
o
<div id="en_tete">
<!-- Ici on mettra la bannire -->
</div>
<div id="menu">
<!-- Ici on mettra le menu -->
</div>
<div id="corps">
<!-- Ici on mettra le contenu principal de la page (tout le texte quoi) -->
</div>
<div id="pied_de_page">
<!-- Enfin, on mettra en bas de la page le nom de l'auteur, un copyright... -->
</div>
C'est tout simple, on a mis un block <div> pour chaque gros block de la page. On verra tout
l'heure ce qu'on met dedans.
Particularit qui a d vous choquer : on utilise ici des attributs id et non des class comme on
a eu l'habitude d'en utiliser jusqu'ici. Si vous ne vous souvenez pas de la diffrence entre un
id et une class, retournez voir les premiers sous chapitres sur le CSS.
Grosso modo, un id et une class c'est quasiment la mme chose, sauf qu'on ne peut mettre
un id qu'une seule fois dans une page XHTML, contrairement aux class qu'on peut utiliser
plusieurs fois. Il y a peu d'id dans une page en gnral, on en met surtout pour les grands
"blocks" du design comme on vient de le faire ici.
Vous devez crire vos blocks dans l'ordre o ils seront affichs (de haut en bas) dans le code
XHTML. En premier l'en-tte, en dernier le pied de page.
83
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Pour ce qui est du menu et du corps qui se trouvent au mme niveau, l'ordre entre eux deux
n'importe pas. On pourra modifier leur position dans le CSS (menu gauche, ou menu
droite).
On on va voir plus en dtail ce qu'on met dans chacun des 4 <div> :
L'en-tte
En gnral, un en-tte c'est juste une bannire (une image), voire pour ceux qui n'ont pas
envie de dessiner un simple titre <h1> (titre du site).
Pour cet exemple part, on mettre la bannire suivante :
Soit on cre une balise <img /> l'intrieur, afin d'insrer notre bannire. C'est une
mthode facile pour insrer une image, cela on sait le faire.
Soit on ne met rien l'intrieur du <div id="en_tete"> et on mettra la bannire sous
forme d'image de fond tout l'heure dans le CSS.
La seconde solution n'est pas particulirement difficile mais un peu. En fait, on va crer un
bloc "vide" qui va servir uniquement afficher une image, et cette image sera affiche par
le CSS.
Le rsultat sera apparemment le mme que si on avait utilis <img /> mais nous verrons la
fin de ce chapitre que cette technique s'avrera payante si vous voulez pouvoir changer le
design de votre site facilement.
Code : HTML
1 <div id="en_tete">
2
3 </div>
Menu et sous-menus
Dans le block du menu (en bleu marine), on va avoir crer plusieurs sous-blocks (cela
s'embote) pour sparer les diffrents lments du menu.
84
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Regardez-bien le schma ci-dessous : c'est un zoom sur le block "Menu" du schma de tout
l'heure :
Comme vous le voyez, il contient 2 sous-blocks (cadres verts) qui vont servir de sous-menus.
Comment faire cet embotement de blocs ? C'est trs simple en XHTML :
Code : HTML
1 <div id="menu"> <!-- Cadre englobant tous les sous-menus (en bleu marine sur le schma) -->
2
3 <div class="element_menu"> <!-- Cadre correspondant un sous-menu -->
4
Texte du premier menu
5 </div>
6
7 <div class="element_menu">
8
Texte du second menu
9 </div>
10
11 </div>
Il nous suffit d'imbriquer des balises <div>, ces fameuses balises blocks universelles (on les
appelle aussi "balises gnriques" d'ailleurs)
Bien, rajoutons maintenant le texte l'intrieur du menu pour faire comme dans le dernier
schma.
On va mettre dans chaque "element_menu" un titre de menu. Vous vous souvenez de la
balise qui sert faire des titres ? Oui, il y a 6 balises (selon l'importance du titre) : de <h1>
<h6>. Comme les titres de menus sont un peu moins importants, on va les mettre en <h3>.
85
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Ensuite, on va mettre une liste puces (<ul>) pour avoir un menu bien organis.
Code : HTML
1 <div id="menu">
2
3 <div class="element_menu">
4
<h3>Titre menu</h3> <!-- Titre du sous-menu -->
5
<ul>
6
<li>Lien</li> <!-- Liste des liens du sous-menu -->
7
<li>Lien</li>
8
<li>Lien</li>
9
</ul>
10 </div>
11
12 <div class="element_menu">
13
<h3>Titre menu</h3>
14
<ul>
15
<li>Lien</li>
16
<li>Lien</li>
17
<li>Lien</li>
18
</ul>
19 </div>
20
21 </div>
En gnral, on met souvent des listes puces pour les menus car cela permet de crer une
bonne organisation facilement.
Vous avez peut-tre remarqu que j'ai marqu des "Lien", mais que je n'ai pas mis de balise
<a href="...">. C'tait juste pour ne pas trop encombrer le schma de suite, bien entendu
qu'on va mettre des liens dans notre menu sinon il ne servirait pas grand chose
Code : HTML
1 <div id="menu">
2
3 <div class="element_menu">
4
<h3>Titre menu</h3>
5
<ul>
6
<li><a href="page1.html">Lien</a></li>
7
<li><a href="page2.html">Lien</a></li>
8
<li><a href="page3.html">Lien</a></li>
9
</ul>
10 </div>
11
12 <div class="element_menu">
13
<h3>Titre menu</h3>
14
<ul>
15
<li><a href="page4.html">Lien</a></li>
16
<li><a href="page5.html">Lien</a></li>
17
<li><a href="page6.html">Lien</a></li>
18
</ul>
19 </div>
20
21 </div>
86
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Vous pouvez, si vous le dsirez, ajouter d'autres sous-menus. Il n'y a pas de limite, mais
attention ne pas trop abuser de sous-menus sinon le visiteur risque de se perdre
facilement.
Vous n'tes pas obligs (mme si c'est ce qu'on fait le plus souvent) de mettre des liens et
une liste puces dans un menu. Si vous voulez crire un peu de texte dedans, utilisez la
balise de paragraphe <p></p>.
Le corps
Le corps, c'est la partie principale de la page. C'est l qu'il y aura tout le contenu de votre
page.
Pour commencer, on va mettre un titre <h1> qui sera le titre principal de la page. En gnral,
on met le mme titre dans la balise <title> (dans <head>) que dans la balise <h1>.
Ensuite, on crira nos paragraphes <p> ventuellement spars par des sous-titres <h2>
pour un peu mieux structurer son texte.
Cela nous donne un code relativement simple pour le corps :
Code : HTML
<div id="corps">
<h1>Mon super site</h1>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<p>
Bienvenue sur mon super site !<br />
Vous allez adorer ici, c'est un site gnial qui va parler de... heu... Je cherche encore un peu le thme de
mon site :-D
</p>
<h2>A qui s'adresse ce site ?</h2>
<p>
A tout le monde ! Si je commence privilgier certaines personnes, on va m'accuser de discrimination
;o)<br />
Que vous soyez fans de fusils pulsion plasma ou de Barbie et Ken, ce site est fait pour vous ! Si si !
</p>
<h2>L'auteur</h2>
<p>
L'auteur du site ? Bah, c'est moi, quelle question :-p<br />
Je vais essayer de faire le meilleur site du monde (cela doit pas tre bien compliqu). Mon objectif est
d'attirer un maximum de visiteurs, de les rendre accros mon site, puis de les mettre en mon pouvoir.<br />
Je prendrai ensuite le contrle du Monde. Une fois que ce sera fait, j'irai explorer les confins de l'Univers
la recherche de nouveaux peuples soumettre ma terrible puissance.
MooUUuUuuUAhahHaaAhAAaaah !!! (rire diabolique).
</p>
</div>
N'oubliez pas que cette zone est libre. Si vous voulez mettre des images, des liens, d'autres
paragraphes, faites-le ! C'est le contenu de votre site aprs tout
87
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
88
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<ul>
<li><a href="page4.html">Lien</a></li>
<li><a href="page5.html">Lien</a></li>
<li><a href="page6.html">Lien</a></li>
</ul>
</div>
</div>
<!-- Le corps -->
<div id="corps">
<h1>Mon super site</h1>
<p>
Bienvenue sur mon super site !<br />
Vous allez adorer ici, c'est un site gnial qui va parler de... heu... Je cherche encore un peu le thme
de mon site :-D
</p>
<h2>A qui s'adresse ce site ?</h2>
<p>
A tout le monde ! Si je commence privilgier certaines personnes, on va m'accuser de
discrimination ;o)<br />
Que vous soyez fans de fusils pulsion plasma ou de Barbie et Ken, ce site est fait pour vous ! Si si !
</p>
<h2>L'auteur</h2>
<p>
L'auteur du site ? Bah, c'est moi, quelle question :-p<br />
Je vais essayer de faire le meilleur site du monde (cela doit pas tre bien compliqu). Mon objectif
est d'attirer un maximum de visiteurs, de les rendre accros mon site, puis de les mettre en mon
pouvoir.<br />
Je prendrai ensuite le contrle du Monde. Une fois que ce sera fait, j'irai explorer les confins de
l'Univers la recherche de nouveaux peuples soumettre ma terrible puissance.
MooUUuUuuUAhahHaaAhAAaaah !!! (rire diabolique).
</p>
</div>
<!-- Le pied de page -->
<div id="pied_de_page">
<p>Copyright "Tout pourri Corporation" 2005, tous droits rservs</p>
</div>
</body>
</html>
89
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Secundo, le CSS
Nous attaquons maintenant la partie CSS.
C'est une partie trs importante, car il faut bien que vous compreniez comment chaque ligne
de code modifie le design.
Centrer le design
Pour commencer, nous allons travailler juste sur la balise <body>. <body>, c'est la balise qui
englobe tout le contenu de votre page web. Si on dit que notre <body> fait tant de pixels de
large (pour avoir un design de taille fixe) et qu'on veut le centrer (avec margin:auto;).
Pour la taille de la page, on va mettre 760 pixels. Pourquoi 760 ? Parce que c'est moins que
800px, et ainsi les visiteurs qui sont en rsolution 800*600 n'auront pas se dplacer vers la
droite pour voir le reste de la page.
Pour ce qui est des marges, un margin:auto suffira centrer le design.
On rajoutera une marge en haut (top) et en bas (bottom) de 20 pixels pour viter que notre
page soit trop "colle" avec le haut et le bas du navigateur.
Enfin, on mettra une petite image de fond (background-image) la page pour faire un peu
moins vide.
Voil ce que cela devrait donner :
Code : CSS
body
1{
2 width: 760px;
3 margin: auto; /* Pour centrer notre page */
4 margin-top: 20px; /* Pour viter de coller avec le haut de la fentre du navigateur. Essayez d'enlever pour
5 voir ! */
6 margin-bottom: 20px; /* Idem pour le bas du navigateur */
7 background-image: url("images/fond.png"); /* Une petite image de fond pour viter d'avoir un vieux fond
8 blanc :p */
}
On peut essayer d'enlever quelques lignes pour observer le rsultat sur la page :
90
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
L'en-tte
Nous allons afficher la bannire du site l'aide du CSS (avec background-image). On a fait un
truc un peu nouveau tout l'heure : on n'a rien mis dans le <div> de l'en-tte.
C'est une technique que vous pourrez utiliser si besoin est pour faire en sorte que tout votre
design soit compris dans le fichier CSS. Ca sera trs pratique (entre autres) pour raliser un
site qui propose plusieurs designs diffrents.
A nous maintenant d'afficher notre bannire avec uniquement du CSS :
1. La premire chose faire, si on veut que la bannire soit visible, ce sera d'agrandir la
taille du block "en_tete" afin qu'il puisse contenir la bannire entire.
Comme notre bannire fait 758x100pixels, on va dfinir une largeur et une hauteur
de ces dimensions :
width:758px;
height:100px;
2. Ensuite, on va indiquer quelle image de fond on veut mettre notre grand block qui
est pour l'instant vide :
background-image:url("images/banniere.png");
3. Normalement notre fond n'a la place d'apparatre qu'une seule fois, mais cela ne
nous cote pas grand chose de s'assurer que cette image ne sera pas rpte en
mosaque avec background-repeat :
background-repeat:no-repeat;
4. Enfin, c'est un dtail mais afin d'viter que l'en-tte ne soit trop coll avec ce qui se
trouvera dessous (le menu et le corps), on va dfinir une petite marge en-dessous
(margin-bottom) de quelques pixels :
margin-bottom:10px;
Nous y sommes. Ca donne finalement cela :
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
body
{
width: 760px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
background-image: url("images/fond.png");
}
/* L'en-tte */
#en_tete
{
width: 760px;
height: 100px;
background-image: url("images/banniere.png");
91
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
18 background-repeat: no-repeat;
19 margin-bottom: 10px;
20 }
A partir d'un block vide, nous avons pu afficher notre bannire uniquement en CSS.
Dsormais, si vous voulez changer la bannire de votre site, il faudra modifier le fichier CSS
et non le fichier XHTML. Et cela, c'est une bonne chose vous le comprendrez tout l'heure
Pourquoi il y a un # devant "en_tete" ? C'est pas un point normalement qu'on met ???
Non, comme rappelle pour ceux qui l'auraient oubli :
Pour une class, on met un "." (point) devant le nom dans le CSS.
Pour un id, on met un "#" (dise) devant le nom. Or, regardez le code XHTML,
"en_tete" est un id !
Le menu
Cela c'est un peu plus difficile.
Il va nous falloir placer le menu " gauche" du corps, alors que pour l'instant le menu se
trouve au-dessus.
Pour faire cela, la technique la plus courante et la plus rapide, c'est d'utiliser la proprit CSS
float. C'est une proprit un peu particulire comme nous l'avons vu, et elle va tre trs
pratique ici pour placer correctement le menu et le corps.
On va aussi donner une taille de 120 pixels au menu, pour qu'il ne soit pas trop grand.
Ensuite, nous allons travailler sur notre class "element_menu" (qui correspond une partie
de menu). On va lui mettre une couleur de fond un peu plus gris fonc, une image de fond
en repeat-x (qui se rptera uniquement horizontalement).
Ensuite, on rajoutera une bordure chaque lement de menu pour qu'on voie bien ses
limites. "2px" solid black cela devrait tre bon.
Enfin, on mettra un margin-bottom chaque lment de menu pour viter qu'ils ne soient
trop colls les uns par rapport aux autres.
Code : CSS
1
2
3
4
5
6
7
8
9
10
body
{
width: 760px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
background-image: url("images/fond.png");
}
/* L'en-tte */
92
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#en_tete
{
width: 760px;
height: 100px;
background-image: url("images/banniere.png");
background-repeat: no-repeat;
margin-bottom: 10px;
}
/* Le menu */
#menu
{
float: left; /* Le menu flottera gauche */
width: 120px; /* Trs important : donner une taille au menu */
}
.element_menu
{
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
border: 2px solid black;
}
margin-bottom: 20px; /* Pour viter que les lments du menu ne soient trop colls */
Encore une fois, si vous voulez comprendre, il faut essayer d'enlever quelques lignes du CSS
pour voir ce que cela change.
Comme vous pouvez le constater si vous testez ce code, ce n'est pas encore termin mais
cela s'amliore. On distingue dj bien nos bouts de menus, par contre le corps se retrouve
sous le menu une fois qu'il l'a dpass par le bas.
C'est normal car c'est comme cela que fonctionne un float, rappelez-vous ce petit schma
simple sur une image flottante :
Comment faire alors pour que le corps de la page ne passe pas sous le menu flottant ?
Il nous faudra rajouter une marge gauche sur le corps (margin-left). On fera cela quand on
93
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
body
{
width: 760px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
background-image: url("images/fond.png");
}
/* L'en-tte */
#en_tete
{
width: 760px;
height: 100px;
background-image: url("images/banniere.png");
background-repeat: no-repeat;
margin-bottom: 10px;
}
/* Le menu */
#menu
{
float: left;
width: 120px;
}
.element_menu
{
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
border: 2px solid black;
}
margin-bottom: 20px;
94
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
color: #B3B3B3;
font-family: Arial, "Arial Black", "Times New Roman", Times, serif;
text-align: center;
En plus, l'effet du :hover sur les liens du menu est trs facile raliser, donc c'est tout
bnfique pour nous
Petite prcision quand mme, c'est un dtail pour que tout soit clair. Vous avez vu quon a
enchan un "padding" (qui modifie toutes les marges intrieures) et un "padding-left" (qui
modifie uniquement la marge intrieure gauche).
En fait c'est une technique pour gagner de la place. Il faut lire les lignes dans l'ordre :
1. Premirement, on modifie toutes les marges et on leur met toutes la valeur "0px"
avec padding
2. Deuximement, on modifie la marge de gauche. Elle valait 0px, dsormais on change
sa valeur et on lui met 20px avec padding-left (on dit qu'on "crase" l'ancienne
valeur)
On peut aussi mettre la place :
padding-top:0px;
padding-bottom:0px;
padding-right:0px;
padding-left:20px;
Mais cela aurait t plus long.
95
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Le corps
body
{
width: 760px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
background-image: url("images/fond.png");
}
/* L'en-tte */
#en_tete
{
width: 760px;
height: 100px;
background-image: url("images/banniere.png");
96
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
background-repeat: no-repeat;
margin-bottom: 10px;
}
/* Le menu */
#menu
{
float: left;
width: 120px;
}
.element_menu
{
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
border: 2px solid black;
}
margin-bottom: 20px;
97
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
75 {
76 margin-left: 140px; /* Une marge gauche pour pousser le corps, afin qu'il ne passe plus sous le menu */
77 margin-bottom: 20px; /* Ca c'est pour viter que le corps colle trop au pied de page en-dessous */
78 padding: 5px; /* Pour viter que le texte l'intrieur du corps ne colle trop la bordure */
79
80 color: #B3B3B3;
81 background-color: #626262; /* Une couleur de fond pour le corps */
82 background-image: url("images/motif.png");
83 background-repeat: repeat-x; /* Une petite image de fond qui se rptera horizontalement en haut */
84
85 border: 2px solid black; /* Une bordure pour bien marquer les limites du corps et pour faire joli */
86 }
Il nous reste quand mme quelques petits trucs dcorer dans notre corps. Par exemple, les
titres : on va changer leur police pour mettre une "Arial" pour les titres.
On va aussi rajouter une image de fond sur les titres h2, avec background-repeat:no-repeat;,
ce qui signifie que le fond ne se rptera pas (il restera donc gauche).
Pour viter que le texte du titre ne s'crive sur l'image de fond, on met un padding-left de
quelques pixels. Comme cela, on aura une image d'engrenage devant chaque titre <h2>
automatiquement !
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
body
{
width: 760px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
background-image: url("images/fond.png");
}
/* L'en-tte */
#en_tete
{
width: 760px;
height: 100px;
background-image: url("images/banniere.png");
background-repeat: no-repeat;
margin-bottom: 10px;
}
/* Le menu */
#menu
{
float: left;
width: 120px;
}
.element_menu
{
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
98
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
margin-bottom: 20px;
99
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Le pied de page
Pour le pied de page, rien de compliqu ni d'extraordinaire, ce sont des modifications
similaires au reste. On met une couleur de fond, on met une bordure, on vrifie si les marges
nous plaisent... Notez quon fait un "clear: both" pour supprimer l'effet flottant du menu.
Cela permet de s'assurer que le pied de page est bien sous le menu.
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
Design d'exemple
Ralis par
*/
body
{
width: 760px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
background-image: url("images/fond.png");
}
/* L'en-tte */
#en_tete
{
width: 760px;
height: 100px;
background-image: url("images/banniere.png");
background-repeat: no-repeat;
margin-bottom: 10px;
}
/* Le menu */
#menu
{
float: left;
100
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
width: 120px;
.element_menu
{
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
border: 2px solid black;
margin-bottom: 20px;
}
/* Quelques effets sur les menus */
.element_menu h3
{
color: #B3B3B3;
font-family: Arial, "Arial Black", "Times New Roman", Times, serif;
text-align: center;
}
.element_menu ul
{
list-style-image: url("images/puce.png");
padding: 0px;
padding-left: 20px;
margin: 0px;
margin-bottom: 5px;
}
.element_menu a
{
color: #B3B3B3;
}
.element_menu a:hover
{
background-color: #B3B3B3;
color: black;
}
/* Le corps de la page */
#corps
{
margin-left: 140px;
margin-bottom: 20px;
padding: 5px;
color: #B3B3B3;
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
101
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
padding-left: 30px;
color: #B3B3B3;
text-align: left;
/* Le pied de page (qui se trouve tout en bas, en gnral pour les copyrights) */
#pied_de_page
{
padding: 5px;
clear: both;
text-align: center;
color: #B3B3B3;
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
border: 2px solid black;
}
102
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Pour terminer
Rappel : insrer un CSS dans le XHTML
Cela peut paratre simple mais vous l'avez peut-tre dj oubli : pour que notre fichier
XHTML s'affiche avec la prsentation indique dans le CSS, il faut rajouter la ligne suivante
entre <head> et </head> :
<link rel="stylesheet" media="screen" type="text/css" title="Exemple"
href="design_mecanique.css" />
Cette ligne indique que l'on utilise le fichier "design_mecanique.css" pour la prsentation.
103
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Avec design_mecanique.css :
104
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Avec design_poney_rose.css
Regardez le code source XHTML, c'est le mme que tout l'heure. Avec le CSS, on a :
Age
27 ans
33 ans
26 ans
18 ans
Pays
France
Espagne
Etats-Unis
Japon
C'est un tableau assez primaire. Bien entendu, nous apprendrons faire des tableaux plus
complexes afin que vous puissiez raliser tout ce dont vous avez besoin.
Encore une fois, CSS sera de passage et vous permettra de rendre vos tableaux super classe
en un clin d'oeil. Bonne nouvelle de ce ct : il n'y a pas vraiment de nouvelles proprits
CSS apprendre, vous connaissez dj pratiquement tout !
106
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Un tableau simple
Premire balise connatre : <table> </table>. C'est cette balise qui permet d'indiquer le
dbut et la fin d'un tableau.
Cette balise est de type block, donc il faut la mettre en dehors d'un paragraphe.
Exemple :
Code : HTML
1
2
3
4
5
6
7
En XHTML, votre tableau se construit ligne par ligne. Dans chaque ligne (<tr>), on indique le
contenu des diffrentes cellules (<td>).
Schmatiquement, notre tableau de tout l'heure se construit comme cela :
On a une balise de ligne (<tr>) qui "entoure" chacune des cellules (<td>)
Par exemple, si on veut faire un tableau deux lignes, avec 3 cellules par lignes (donc 3
colonnes), je devrai taper ceci :
107
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
1 <table>
2 <tr>
3
<td>Carmen</td>
4
<td>33 ans</td>
5
<td>Espagne</td>
6 </tr>
7 <tr>
8
<td>Michelle</td>
9
<td>26 ans</td>
10
<td>Etats-Unis</td>
11 </tr>
12 </table>
Ce n'est pas encore aussi parfait que ce qu'on voudrait. En effet, on aimerait qu'il n'y ait
qu'une seule bordure entre 2 cellules, or ce n'est pas le cas ici.
Heureusement, il existe une proprit CSS spcifique aux tableaux : border-collapse, qui
signifie "coller les bordures entre elles".
Cette proprit peut prendre 2 valeurs :
collapse : les bordures seront colles entre elles, c'est l'effet qu'on recherche.
separate : les bordures seront dissocies (valeur par dfaut)
Code : CSS
1
2
3
4
5
6
7
8
table
{
border-collapse: collapse; /* Les bordures du tableau seront colles (plus joli) */
}
td
{
border: 1px solid black;
}
Nous verrons plus loin dans ce sous chapitre d'autres options CSS. Nous essaierons aussi
d'gayer un peu les tableaux qui sont pour le moment un peu moches.
108
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
La ligne d'en-tte
Maintenant que l'on a ce qu'on voulait, on va rajouter la ligne d'en-tte du tableau. Dans
notre exemple, les en-ttes sont "Nom", "Age" et "Pays".
La ligne d'en-tte se cre avec un <tr> comme on a fait jusqu'ici, mais les cellules l'intrieur
sont cette fois des <th> et non pas des <td> !
Code : HTML
1 <table>
2 <tr>
3
<th>Nom</th>
4
<th>Age</th>
5
<th>Pays</th>
6 </tr>
7
8 <tr>
9
<td>Carmen</td>
10
<td>33 ans</td>
11
<td>Espagne</td>
12 </tr>
13 <tr>
14
<td>Michelle</td>
15
<td>26 ans</td>
16
<td>Etats-Unis</td>
17 </tr>
18 </table>
Comme le nom des cellules est un peu diffrent pour l'en-tte, il faut penser mettre jour
le CSS pour lui dire d'appliquer une bordure sur les cellules normales ET sur l'en-tte :
Code : CSS
1
2
3
4
5
6
7
8
table
{
border-collapse: collapse;
}
td, th /* Mettre une bordure sur les td ET les th */
{
border: 1px solid black;
}
109
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Et voil le travail !
Comme vous pouvez le constater, votre navigateur a mis le texte des cellules d'en-tte en
gras. C'est ce que font en gnral les navigateurs, mais si vous le dsirez vous pouvez
changer cela coup de CSS : modifier la couleur de fond des cellules d'en-tte, leur police,
leur bordure etc...
Nous verrons des exemples de CSS de tableaux un peu plus complets.
Titre du tableau
Normalement, tout tableau doit avoir un titre. Le titre permet de renseigner rapidement le
visiteur sur le contenu du tableau.
Dans notre exemple, on a une liste de personnes... oui mais alors ? Qu'est-ce que cela
reprsente ? Sans titre de tableau, vous le voyez, on est un peu perdus
Heureusement, il y a <caption> !
Cette balise se met tout au dbut du tableau, juste avant l'en-tte. C'est elle qui indique le
titre du tableau :
Code : HTML
1 <table>
2 <caption>Passagers du vol 377</caption>
3
4 <tr>
5
<th>Nom</th>
6
<th>Age</th>
7
<th>Pays</th>
8 </tr>
9 <tr>
10
<td>Carmen</td>
11
<td>33 ans</td>
12
<td>Espagne</td>
13 </tr>
14 <tr>
15
<td>Michelle</td>
16
<td>26 ans</td>
17
<td>Etats-Unis</td>
18 </tr>
19 </table>
110
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
En-tte
Corps du tableau
Pied de tableau
Pour certains tableaux, il se peut que vous ayez besoin de fusionner des cellules
entre elles.
Commenons par le premier point : vous avez un gros tableau, et vous devez le diviser en
plusieurs parties.
Que mettre dans le pied de tableau ? Gnralement, si c'est un long tableau, vous recopiez
les cellules d'en-tte. Cela permet de voir mme en bas du tableau quoi se rapporte
chacune des colonnes.
Schmatiquement, un tableau en 3 parties se dcoupe donc comme cela :
111
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
La seule chose un peu droutante, c'est qu'il faut mettre les balises dans l'ordre suivant :
1. <thead>
2. <tfoot>
3. <tbody>
On met donc dans le code d'abord la partie du haut, ensuite la partie du bas, et enfin la
partie principale (tbody). Le navigateur se chargera d'afficher les lments au bon endroit.
Voici donc le code crire pour faire le tableau en 3 parties :
Code : HTML
1 <table>
2 <caption>Passagers du vol 377</caption>
3
4 <thead> <!-- En-tte du tableau -->
5
<tr>
6
<th>Nom</th>
7
<th>Age</th>
8
<th>Pays</th>
9
</tr>
10 </thead>
11
12 <tfoot> <!-- Pied de tableau -->
13
<tr>
14
<th>Nom</th>
15
<th>Age</th>
16
<th>Pays</th>
17
</tr>
18 </tfoot>
19
20 <tbody> <!-- Corps du tableau -->
21
<tr>
22
<td>Carmen</td>
23
<td>33 ans</td>
24
<td>Espagne</td>
25
</tr>
26
<tr>
112
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
27
<td>Michelle</td>
28
<td>26 ans</td>
29
<td>Etats-Unis</td>
30
</tr>
31
<tr>
32
<td>Franois</td>
33
<td>43 ans</td>
34
<td>France</td>
35
</tr>
36
<tr>
37
<td>Martine</td>
38
<td>34 ans</td>
39
<td>France</td>
40
</tr>
41
<tr>
42
<td>Jonathan</td>
43
<td>13 ans</td>
44
<td>Australie</td>
45
</tr>
46
<tr>
47
<td>Xu</td>
48
<td>19 ans</td>
49
<td>Chine</td>
50
</tr>
51 </tbody>
52 </table>
Il n'est pas obligatoire d'utiliser ces 3 balises (thead, tbody, tfoot) sur son tableau. En fait,
vous vous en servirez surtout si votre tableau est assez gros et que vous avez besoin de
l'organiser plus clairement
Pour les "petits" tableaux vous pouvez garder l'organisation qu'on a vu au dbut (un peu
plus simple), il n'y a pas de problme.
Fusion de cellules
Sur certains tableaux complexes, vous aurez besoin de "fusionner" des cellules entre elles.
Un exemple de fusion ? Regardez, ce tableau liste des films et indique qui ils s'adressent :
Pour le dernier film, vous voyez que les cellules ont t fusionnes : elles ne font plus qu'un.
C'est exactement l'effet qu'on cherche obtenir.
Pour effectuer une fusion, il faut rajouter un attribut la balise <td>. Il faut savoir qu'il existe
2 types de fusion :
113
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
La fusion de colonnes : c'est ce quon trouve sur cet exemple. La fusion s'effectue
horizontalement.
On utilisera l'attribut colspan.
La fusion de lignes : l, deux lignes seront groupes entre elles. La fusion s'effectuera
verticalement.
On utilisera l'attribut rowspan.
Comme vous le savez, vous devez donner une valeur l'attribut (que ce soit colspan ou
rowspan).
Cette valeur, c'est le nombre de cellules fusionner entre elles. Sur notre exemple, on a
fusionn deux cellules : celle de la colonne "Pour enfants ?", et celle de "Pour adolescents ?".
On devra donc crire :
<td colspan="2">
Qui signifie : "Cette cellule est la fusion de 2 cellules"
Il est possible de fusionner plus de cellules la fois (3, 4, 5... tant que vous voulez).
Voil le code XHTML qui me permet de raliser la fusion de tout l'heure :
Code : HTML
1 <table>
2 <tr>
3
<th>Titre du film</th>
4
<th>Pour enfants ?</th>
5
<th>Pour adolescents ?</th>
6 </tr>
7 <tr>
8
<td>Massacre la trononneuse</td>
9
<td >Non, trop violent</td>
10
<td>Oui</td>
11 </tr>
12 <tr>
13
<td>Les bisounours font du ski</td>
14
<td>Oui, adapt</td>
15
<td>Pas assez violent...</td>
16 </tr>
17 <tr>
18
<td>Lucky Luke, seul contre tous</td>
19
<td colspan="2">Pour toute la famille !</td>
20 </tr>
21 </table>
Le texte des cellules nest pas color pour ne pas compliquer le code XHTML. Ceci tant, on
peut le faire en 'utiliser des class.
Remarque importante : vous voyez que la dernire ligne ne contient que 2 cellules au lieu de
3 (il n'y a que 2 balises <td>).
C'est tout fait normal, car on a ai fusionn les deux dernires cellules entre elles. Le <td
colspan="2"> indique que cette cellule prend la place de 2 cellules la fois.
114
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Il n'empche que nos tableaux ne sont pas trs "design" pour le moment. Comme promis,
nous allons voir dans la dernire partie de ce chapitre comment embellir un tableau grands
coups de CSS
Le tout est de penser les utiliser, et les utiliser sur les bonnes balises. Par exemple, si vous
mettez une couleur de fond noire la balise <table>, tout le tableau sera noir. Tandis que si
vous mettez la couleur de fond sur les balises <th>, seules les cellules d'en-tte changeront !
116
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
46
<tr>
47
<td>Xu</td>
48
<td>19 ans</td>
49
<td>Chine</td>
50
</tr>
51 </tbody>
52 </table>
Rien qu'en modifiant le CSS avec des proprits qu'on connat, il va avoir d'un coup
beaucoup plus d'allure !
Code : CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sur les tableaux, plus que partout ailleurs, vous aurez intrt travailler votre CSS. Il suffit de
comparer. Lequel de ces 2 tableaux prfrez-vous ?
117
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
separate : les bordures seront spares les unes par rapport aux autres (par
dfaut).
o collapse : les bordures seront colles entre elles.
vertical-align : alignement vertical du contenu d'une cellule. Si une cellule a une
hauteur importante, il est possible de placer son contenu en haut, en bas ou au
milieu de la cellule :
o
o
o
o
118
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
caption
{
caption-side: bottom; /* Le titre sera plac en bas du tableau */
margin: auto;
font-family: Arial, Times, "Times New Roman", serif;
font-weight: bold;
font-size: 1.2em;
color: #009900;
margin-top: 20px; /* La marge doit se faire au-dessus et non en-dessous maintenant */
}
table
{
margin: auto;
border: 4px outset green;
border-collapse: collapse;
}
th
{
background-color: #006600;
color: white;
font-size: 1.1em;
font-family: Arial, "Arial Black", Times, "Times New Roman", serif;
}
td
{
height: 80px; /* J'agrandis la hauteur des cellules pour que l'on puisse voir l'alignement vertical */
vertical-align: bottom; /* Alignement vertical, le contenu des cellules sera plac en bas */
border: 1px solid black;
font-family: "Comic Sans MS", "Trebuchet MS", Times, "Times New Roman", serif;
text-align: center;
padding: 5px;
}
caption-side.
Petit dtail, on a modifi le margin-bottom de tout l'heure en margin-top : maintenant que
le titre se trouve en bas du tableau, la marge s'effectue au-dessus du titre !
Pour pouvoir tester l'alignement vertical, on a d modifier la hauteur des cellules. En effet,
pour que l'alignement vertical se voie, il faut que les cellules soient suffisamment grandes.
Ensuite, le vertical-align a permis de dire "on veut que le texte soit plac en bas de chaque
cellule" !
119
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
L'ide est simple : vous avez cr un site, et vous aimeriez par exemple que vos visiteurs
puissent vous donner leur avis dessus, en cochant des cases, en entrant leurs commentaires,
leurs suggestions....
Crer un formulaire
Lorsqu'il vous prend subitement l'envie d'insrer un formulaire dans votre page XHTML, vous
devez obligatoirement crer une balise <form></form>. C'est la balise principale du
formulaire, elle permet d'en indiquer le dbut et la fin.
Code : HTML
<p>Texte avant le formulaire</p>
1
2
<form>
3
<p>Texte l'intrieur du
4
formulaire</p>
5
</form>
6
7
<p>Texte aprs le formulaire</p>
Notez qu'il faut obligatoirement mettre des balises de type block (comme <p></p>)
l'intrieur de votre formulaire si vous avez besoin d'crire du texte dedans.
Il faut savoir qu'un formulaire est fait pour tre envoy.
Exemple : Supposons que votre visiteur vienne de taper un commentaire dans votre
formulaire, comme par exemple "Veuillez ajouter le plan du site !". Ce message doit tre
envoy pour que vous puissiez le recevoir, et afin que vous sachiez ce que le visiteur pense
de votre site.
120
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Problme n1 : comment envoyer le texte rentr par le visiteur ? Par quel moyen ?
Problme n2 : une fois que les donnes ont t envoyes, comment les traiter ?
Souhaitez-vous recevoir le message automatiquement par mail, ou prfrez-vous
qu'un programme se charge de l'enregistrer quelque part, puis de l'afficher sur une
page visible par tout le monde ?
Vous devez indiquer 2 attributs la balise <form> afin de donner les rponses ces 2
problmes :
method : cet attribut indique par quel moyen les donnes vont tre envoyes
(problme n1). Il existe 2 moyens pour envoyer des donnes sur le web :
o method="get" : c'est une mthode en gnral assez peu adapte, car elle est
limite 255 caractres. La particularit vient du fait que les informations
seront envoyes dans l'adresse de la page (http://...), mais ce dtail ne nous
intresse pas vraiment pour le moment. La plupart du temps, il est
recommand d'utiliser l'autre mthode : "post".
o method="post" : c'est la mthode la plus utilise pour les formulaires car on
peut rentrer un grand nombre d'informations grce elle.
action : c'est l'adresse de la page ou du programme qui va traiter les informations
(problme n2). Cette page se chargera de vous envoyer un mail avec le message si
c'est ce que vous voulez, ou bien d'enregistrer le message avec tous les autres dans
une base de donnes.
Cela ne peut pas se faire en XHTML / CSS, on utilisera en gnral un autre langage : le
PHP par exemple.
On va donc maintenant complter la balise <form> avec les 2 attributs qu'on vient de voir.
Pour method, on va mettre la valeur "post".
Pour action, on va taper le nom d'une page spciale en PHP ("traitement.php"). C'est cette
page qui sera appele lorsque le visiteur cliquera sur le bouton "Envoyer le formulaire".
Code : HTML
1
2
3
4
5
6
7
121
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
La zone de texte une ligne : comme son nom l'indique, on ne peut crire qu'une
seule ligne l'intrieur :p. Elle sert pour rentrer des textes courts, comme par
exemple : "Entrez votre pseudo"
La zone de texte multiligne : cette zone de texte permet d'crire une quantit
importante de texte sur plusieurs lignes, comme par exemple : "Donnez vos
impressions sur la formation que vos suivez "
122
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Les labels
Pour indiquer ce que signifie une zone de texte au visiteur, on utilise la balise <label> qui
entoure le libell, comme ceci :
Code : HTML
<form method="post" action="traitement.php">
1
<p>
2
<label>Votre pseudo</label> : <input type="text" name="pseudo"
3
/>
4
</p>
5
</form>
Mais cela ne suffit pas. Il faut lier le label avec la zone de texte.
Pour ce faire, il faut donner un nom la zone de texte, non pas avec l'attribut name mais
avec l'attribut id (que l'on peut utiliser sur toutes les balises).
Pour lier le label au champ, il faut lui donner un attribut for qui a la mme valeur que l'id du
champ...
Code : HTML
<form method="post" action="traitement.php">
1
<p>
2
<label for="pseudo">Votre pseudo</label> : <input type="text" name="pseudo"
3
id="pseudo" />
4
</p>
5
</form>
Essayez de cliquer sur le texte "Votre pseudo" : vous allez voir que le curseur se place
automatiquement dans la zone de texte correspondante.
On a "li" le label avec sa zone de texte pour qu'on sache quoi il correspond.
Mais... Cela sert juste ce que la zone de texte soit slectionne si on clique sur "Votre
pseudo" ?
123
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Vous pouvez facilement faire en sorte que la zone de texte se comporte comme une zone
"mot de passe", c'est--dire une zone o on ne voit pas l'cran ce qui est tap dedans.
La seule chose que vous avez besoin de changer, c'est l'attribut type de <input />. Mettez
type="password".
On complte mon formulaire. Il demande maintenant au visiteur son pseudo et son mot de
passe :
124
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
<form method="post" action="traitement.php">
1
<p>
2
<label for="pseudo">Votre pseudo :</label>
3
<input type="text" name="pseudo" id="pseudo" value="Essai"
4
/>
5
6
<br />
7
<label for="pass">Votre mot de passe :</label>
8
<input type="password" name="pass" id="pass" />
9
10
</p>
11
</form>
multiligne
Zone de texte
La zone de texte multiligne est une balise existant par paire (contrairement <input />).
C'est la balise <textarea></textarea>
A elle aussi, comme tout autre lment du formulaire, il faut lui donner un nom avec
name, et utiliser un label qui explique de quoi il s'agit.
Code : HTML
1
2
3
4
5
6
On peut modifier la taille du textarea en ajoutant les attributs rows et cols la balise
<textarea>. Le premier indique le nombre de lignes du textarea, et le second le
nombre de colonnes.
Code : HTML
125
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
126
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
127
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Elments d'options
En plus des zones de saisies, le XHTML vous offre des lments d'options utiliser dans votre
formulaire.
On va voir dans cette partie :
1
2
3
4
5
6
7
8
9
Grce aux label , vous n'tes pas obligs de cliquer directement sur la case, vous pouvez
aussi cliquer sur le texte juste ct (enfin, cela ne marche pas sur IE comme...).
128
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
N'oubliez pas aussi de donner un nom chaque case cocher, cela vous permettra
d'identifier plus tard quelles cases le visiteur a coch.
Vous pouvez faire en sorte qu'une case soit dj coche par dfaut. Pour faire cela, il faut
rajouter l'attribut checked="checked" (mme attribut et valeur).
Cela nous permet d'influencer les choix dans notre exemple
129
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
1
2
3
4
5
6
7
8
9
Les zones d'options vous permettent de faire un choix (et un seul) parmi une liste de
possibilits :
Cela ressemble aux cases cocher, avec juste une petite difficult supplmentaire, vous allez
voir.
La balise utiliser est toujours un <input />, avec cette fois la valeur "radio" pour l'attribut
type.
La grosse diffrence avec les cases cocher, c'est que les zones d'options fonctionnent par
"groupe". Tout un groupe d'options a le mme nom, mais un attribut value diffrent
chaque fois.
Code : HTML
1
2
3
4
5
6
7
8
9
</form>
Pourquoi avoir mis le mme nom pour chaque option ? Tout simplement pour que le
navigateur sache dans quel "groupe" le bouton fait partie.
Essayez d'enlever les attributs name, vous verrez que chaque lment d'option deviendra
slectionnable. Or, ce n'est pas ce que l'on veut, c'est pour cela qu'on les "lie" entre eux en
leur donnant un nom identique.
Vous noterez que cette fois on a choisi un id diffrent de name. En effet, les name tant
identiques, on n'aurait pas pu les diffrencier (et vous savez bien qu'un id doit tre unique !).
Voil donc pourquoi on a choisi de mettre l'id la mme valeur que value.
Si vous avez 2 zones d'options diffrentes, il faut donner un nom unique chaque groupe
comme ceci :
Code : HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
131
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Dernire petite prcision : si vous voulez qu'une des options soit coche par dfaut, vous
rajoutez un checked="checked" comme pour les cases cocher.
Les listes droulantes
Les listes droulantes sont un autre moyen lgant de faire un choix entre plusieurs
possibilits :
Cette fois, cela fonctionne un peu diffremment. On va utiliser la balise <select></select> qui
indique le dbut et la fin de la liste droulante.
On ajoute l'attribut name la balise pour donner un nom la liste. Par exemple "pays" :
<select name="pays">
Et maintenant, l'intrieur du <select></select>, on va mettre plusieurs balises
<option></option> (une par choix possible).
On rajoute un attribut value pour pouvoir identifier ce que le visiteur a choisi.
Code : HTML
<form method="post" action="traitement.php">
1
<p>
2
<label for="pays">Dans quel pays habitez-vous ?</label><br
3
/>
4
<select name="pays" id="pays">
5
<option value="france">France</option>
6
<option value="espagne">Espagne</option>
7
<option value="italie">Italie</option>
8
<option value="royaume-uni">Royaume-Uni</option>
9
<option value="canada">Canada</option>
10
<option value="etats-unis">Etats-Unis</option>
11
<option value="chine">Chine</option>
12
<option value="japon">Japon</option>
13
</select>
14
</p>
15
</form>
Autre nouveaut, on ne peut plus utiliser le checked="checked" ici, on doit utiliser la place
le... selected="selected". Il nous permet comme le checked de slectionner une valeur par
dfaut :
132
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
<form method="post" action="traitement.php">
1
<p>
2
<label for="pays">Dans quel pays habitez-vous ?</label><br />
3
<select name="pays" id="pays">
4
<option value="france">France</option>
5
<option value="espagne">Espagne</option>
6
<option value="italie">Italie</option>
7
<option value="royaume-uni">Royaume-Uni</option>
8
<option value="canada"
9
selected="selected">Canada</option>
10
<option value="etats-unis">Etats-Unis</option>
11
<option value="chine">Chine</option>
12
<option value="japon">Japon</option>
13
</select>
14
</p>
15
</form>
134
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Code : HTML
<form method="post" action="traitement.php">
1
<p>
2
<label for="nom">Quel est votre nom ?</label><br />
3
<input type="text" name="nom" id="nom" tabindex="10" /><br />
4
5
<label for="prenom">Quel est votre prnom ?</label><br />
6
<input type="text" name="prenom" id="prenom" tabindex="20" /><br
7
/>
8
9
<label for="email">Quel est votre e-mail ?</label><br />
10
<input type="text" name="email" id="email" tabindex="30" /><br />
11
12
<label for="pays">Dans quel pays habitez-vous ?</label><br />
13
<select name="pays" id="pays" tabindex="40">
14
<optgroup label="Europe">
15
<option value="france">France</option>
16
<option value="espagne">Espagne</option>
17
<option value="italie">Italie</option>
18
<option value="royaume-uni">Royaume-Uni</option>
19
</optgroup>
20
<optgroup label="Amrique">
21
<option value="canada">Canada</option>
22
<option value="etats-unis">Etats-Unis</option>
23
</optgroup>
24
<optgroup label="Asie">
25
<option value="chine">Chine</option>
26
<option value="japon">Japon</option>
27
</optgroup>
28
</select>
29
</p>
30
</form>
Essayez de taper plusieurs fois d'affile sur "Tab", vous allez voir que vous vous dplacerez
dans l'ordre que vous avez dfini avec tabindex.
Cela est particulirement utile pour les personnes qui ne peuvent pas se servir d'une souris.
Par dfaut, si aucun tabindex n'est mis, le navigateur dira que le premier champ est celui
tout en haut, et que le dernier celui tout en bas de la page.
Cependant, il est conseill de toujours mettre les tabindex, car si votre formulaire se
complexifie par la suite cela sera trs utile.
Une touche de raccourci ("access key" en anglais) est une touche qui permet d'accder
135
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
directement un champ de votre formulaire sans avoir cliquer dessus avec la souris et sans
avoir appuyer plusieurs fois sur "Tab" avant de tomber sur le champ qui vous intresse.
Ce qui est trs pratique, c'est que le XHTML vous permet de choisir quelles touches du
clavier serviront de raccourcis.
Ce qui l'est moins, c'est que les raccourcis s'utilisent de manire diffrente en fonction du
navigateur:
Pour dfinir une touche de raccourci, vous utiliserez l'attribut accesskey qui, comme
tabindex, peut se mettre sur tous les types de champs de formulaire qu'on a vus.
Vous devez lui mettre comme valeur la touche du clavier qui doit servir de raccourci pour le
champ.
Sur cet exemple, le champ de recherche est accessible directement avec la touche R :
Code : HTML
<form method="post" action="traitement.php">
1
<p>
2
<label for="nom">Quel est votre nom ?</label><br />
3
<input type="text" name="nom" id="nom" tabindex="10" /><br />
4
5
<label for="prenom">Quel est votre prnom ?</label><br />
6
<input type="text" name="prenom" id="prenom" tabindex="20" /><br />
7
8
<label for="email">Quel est votre e-mail ?</label><br />
9
<input type="text" name="email" id="email" tabindex="30" /><br />
10
11
<label for="recherche">Que recherchez-vous sur ce site ? <em>(raccourci : R)</em></label><br
12
/>
13
<input type="text" name="recherche" id="recherche" tabindex="30" accesskey="R" />
14
</p>
15
</form>
Sous Windows, il faut donc faire Alt + R pour arriver directement sur le champ de recherche.
Sous Mac, il faut faire Ctrl + R.
Le gros problme des touches de raccourci est que certains caractres sont dj utiliss par
le navigateur. Si vous utilisez les mmes, il y aura un conflit et vos visiteurs ne pourront plus
utiliser les raccourcis auxquels ils sont habitus.
L'idal est d'utiliser des chiffres en raccourci, ils sont en gnral trs peu utiliss par les
navigateurs.
136
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
N'oubliez pas d'indiquer quelque part sur la page quels sont les raccourcis utilisables, parce
que vos visiteurs ne pourront pas les deviner.
137
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
138
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
<fieldset>
<legend>Vos coordonnes</legend> <!-- Titre du fieldset -->
<label for="nom">Quel est votre nom ?</label><br />
<input type="text" name="nom" id="nom" tabindex="10" /><br />
<label for="prenom">Quel est votre prnom ?</label><br />
<input type="text" name="prenom" id="prenom" tabindex="20" /><br />
<label for="email">Quel est votre e-mail ?</label><br />
<input type="text" name="email" id="email" tabindex="30" /><br />
</fieldset>
<fieldset>
<legend>Votre souhait</legend> <!-- Titre du fieldset -->
<p>
Faites un souhait que vous voudriez voir exauc :<br />
<input type="radio" name="souhait" value="riche" id="riche" tabindex="40" /> <label
for="riche">Etre riche</label><br />
<input type="radio" name="souhait" value="celebre" id="celebre" tabindex="50" /> <label
for="celebre">Etre clbre</label><br />
<input type="radio" name="souhait" value="intelligent" id="intelligent" tabindex="60" /> <label
for="intelligent">Etre <strong>encore</strong> plus intelligent</label><br />
<input type="radio" name="souhait" value="autre" id="autre" tabindex="70" /> <label
for="autre">Autre...</label><br />
</p>
<p>
<label for="precisions">Si "Autre", veuillez prciser :</label><br />
<textarea name="precisions" id="precisions" cols="40" rows="4" tabindex="80"></textarea>
</p>
</fieldset>
</form>
Les boutons
Nous avons vu la plupart des lments que l'on peut intgrer dans un formulaire, mais il
manque le plus important : le bouton de validation ! Il y a trois types :
Un bouton d'envoi se cre avec l'attribut type="submit". Vous pouvez lui ajouter un
attribut value pour changer le texte l'intrieur du bouton, mais vous pouvez
laisser la valeur par dfaut
<input type="submit" />
140
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Dans le cas prsent, le formulaire ne fait strictement rien. Rassurez-vous donc, aucune
information n'a t enregistre
Lorsque vous cliquez sur "Envoyer", le formulaire vous amne donc une page
"cible_formulaire.php", qui est une page fictive en PHP que vous ne savez pas faire.
141
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
19. RECAPITULATIF
Proprits de formatage de texte
On rsume ici la plupart des proprits de formatage de texte.
Qu'est-ce que le formatage de texte ? C'est tout ce qui consiste mettre en forme le texte :
mettre en gras, italique, soulign, changer la police, l'alignement etc...
Valeurs possibles
Indiquer les noms de polices possibles par ordre de prfrence :
Code : CSS
142
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Nom
Valeurs possibles
1
f
o
n
tf
a
m
il
y:
p
o
li
c
e
1
,
p
o
li
c
e
2
,
p
o
li
c
e
3
;
143
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Nom
Valeurs possibles
1
f
o
n
tf
a
m
il
y:
"
A
ri
al
B
la
c
k
",
A
ri
al
,
V
e
r
d
a
n
a,
s
e
ri
f;
144
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Nom
Valeurs possibles
Indiquez la taille du texte.
Plusieurs units sont possibles :
px (pixels)
Gras
Italique
Dcoration
Petites
capitales
Capitales
Mgaproprit de
police
bold : gras
bolder : plus gras
font-weight
lighter : plus fin
normal : pas gras (par dfaut)
italic : italique
font-style oblique : autre faon de mettre en italique
normal : normal (par dfaut)
underline : soulign
overline : ligne au-dessus
textline-through : barr
decoration
blink : clignotant
none : normal (par dfaut)
small-caps : petites capitales
font-variant
normal : normal (par dfaut)
uppercase : tout mettre en majuscules
textlowercase : tout mettre en minuscules
transform capitalize : dbut des mots en majuscules
none : normal (par dfaut)
font
Indiquez dans n'importe quel ordre des valeurs possibles pour
font-weight, font-style, font-size, font-variant, font-family.
Attention exception : le nom de la police (font-family) doit tre
plac en dernier dans la liste dans tous les cas.
Vous n'tes pas obligs de mettre une valeur de chacune de ces
proprits.
Exemple :
Code : CSS
145
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Nom
Valeurs possibles
1
f
o
n
t:
b
o
l
d
,
1
6
p
x,
A
ri
al
;
Alignement
Type
Proprit
Valeurs possibles
left : gauche (par dfaut)
Alignement
center : centr
text-align
horizontal
right : droite
justify : texte justifi (prend toute la largeur de la page)
A utiliser dans des cellules de tableau, ou dans des lments
inline eux-mmes contenus dans un lment inline.
Alignement
verticaltop : en haut
vertical
align
middle : au milieu
bottom : en bas
Hauteur de ligne line-height Indiquer une valeur en pixels (px) ou en pourcentage (%)
Indiquez une valeur en pixels (px) pour dfinir l'alina de vos
paragraphes.
Alina
text-indent
Vos paragraphes commenceront avec le retrait que vous avez
indiqu.
normal : le passage la ligne est automatique (par dfaut)
nowrap : pas de passage la ligne automatique, moins
whiteCsure
qu'une balise xHTML comme <br /> ne soit prsente.
space
pre : le passage la ligne se fait tel que le texte a t saisi dans
le code source (comme la balise xHTML <pre>)
Couleur
Type
Couleur de
texte
Proprit
Valeurs possibles
Indiquer une couleur avec l'une des mthodes suivantes :
color
Couleur de
fond
backgroundcolor
Image de fond
Type
Image de
fond
Proprit
backgroundimage
Valeurs possibles
Indiquer l'url de l'image (notation absolue ou relative)
Code : CSS
147
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Proprit
Valeurs possibles
1
2
b
a
c
k
g
r
o
u
n
d
i
m
a
g
e
:
u
rl
("
i
m
a
g
e
s
/f
o
n
d
.
p
n
g
")
;
/
*
N
o
t
a
ti
o
n
r
el
a
ti
v
e
*
/
b
a
c
148
Type
Fond fix
Rptition
du fond
Proprit
backgroundattachment
backgroundrepeat
Position du backgroundfond
position
Valeurs possibles
fixed : le fond reste fixe quand on descend plus bas sur la page
scroll : le fond dfile avec le texte (par dfaut)
repeat : le fond se rpte (par dfaut)
repeat-x : le fond ne se rpte que sur une ligne,
horizontalement
repeat-y : le fond ne se rpte que sur une colonne,
verticalement
no-repeat : le fond ne se rpte pas, il n'est affich qu'une fois
2 faons de faire :
En notant une distance en px ou %, par rapport au coin en haut
gauche.
Code : CSS
149
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Proprit
Valeurs possibles
1
b
a
c
k
g
r
o
u
n
d
p
o
si
ti
o
n
:
5
0
p
x
2
0
0
p
x;
/
*
5
0
p
x
d
r
o
it
e
,
2
0
0
p
x
e
n
b
a
s
*
/
150
Type
Proprit
Mgabackground
proprit de
fond
Valeurs possibles
Indiquer une ou plusieurs valeurs issues des proprits
background-image, background-repeat, background-attachment,
background-position.
L'ordre des valeurs n'a pas d'importance et vous n'tes pas
obligs de mettre toutes les valeurs de ces proprits (au moins
une suffit)
Code : CSS
151
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Proprit
Valeurs possibles
1
2
/
*
L
e
f
o
n
d
f
o
n
d
.
p
n
g
r
e
st
e
a
ff
ic
h
e
n
h
a
u
t
d
r
o
it
e
d
e
l'
c
r
a
n
e
t
n
'e
st
p
a
s
r
152
Proprit
Largeur
width
Hauteur
Largeur
minimale
Largeur
maximale
Hauteur
minimale
Hauteur
maximale
height
Valeurs possibles
Valeur en px, %, ou encore "auto" (valeur par dfaut, la largeur
dpendra du texte l'intrieur)
Idem
Idem
Marges extrieures
Type
Proprit
Marge en haut margin-top
Marge gauche margin-left
marginMarge droite
right
Marge en bas
marginbottom
Valeurs possibles
Indiquer une valeur comme 20px, 1.5em...
Idem
Mga-proprit margin
de marge
Idem
Idem
Type
Proprit
Valeurs possibles
Code : CSS
154
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Proprit
Valeurs possibles
1
m
a
r
gi
n
:
2
0
p
x
5
p
x;
/
*
2
0
p
x
d
e
m
a
r
g
e
e
n
h
a
u
t
e
t
e
n
b
a
s,
5
p
x
g
a
u
c
h
e
e
t
d
r
o
it
e
155
Marges intrieures
Type
Marge intrieure
en haut
Marge intrieure
gauche
Marge intrieure
droite
Marge intrieure
en bas
Proprit
Valeurs possibles
Idem
Idem
Indiquez de 1 4 valeurs la suite. Selon le nombre de
valeurs que vous mettez, la signification change :
Mga-proprit de
padding
marge intrieure
156
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Bordures
Type
Proprit
Valeurs possibles
Epaisseur de la
border-width Indiquer une valeur en px.
bordure
Couleur de la bordure border-color Indiquer une valeur de couleur.
none : pas de bordure (par dfaut)
hidden : bordure cache
solid : ligne pleine
double : ligne double (ncessite une taille de bordure de
3px minimum)
Type de bordure
border-style
dashed : en tirets
dotted : en pointills
inset : effet 3D "enfonc"
outset : effet 3D "surlev"
ridge : autre effet 3D
Bordure gauche
border-left Indiquer la couleur, l'paisseur et le type de bordure
pour la bordure gauche.
L'ordre n'a pas d'importance. Exemple :
Code : CSS
157
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Proprit
Valeurs possibles
1
b
o
r
d
e
rle
ft
:
2
p
x
i
n
s
e
t
b
l
u
e
;
/
*
B
o
r
d
u
r
e
b
le
u
e
d
e
2
p
x
a
v
e
c
e
ff
e
t
3
D
"
e
n
f
o
n
c
158
Type
Bordure en haut
Bordure droite
Bordure en bas
Mga-proprit de
bordure
Proprit
Valeurs possibles
border-top Idem
border-right Idem
borderIdem
bottom
Indiquera l'apparence des bordures en haut, droite, en
border
bas et gauche.
159
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Proprit
Affichage
Afficher
seulement une
partie
Valeurs possibles
none : l'lment ne sera pas affich
block : l'lment devient de type "block" (bloc, comme <p>)
inline : l'lment devient de type "inline" (en ligne, comme
<strong>)
list-item : l'lment devient de type "lment de liste puce"
(comme <li>)
hidden : masqu
visible : visible (par dfaut)
160
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Proprit
Valeurs possibles
1
cl
i
p
:
r
e
c
t(
v
al
e
u
r
1
,
v
al
e
u
r
2
,
v
al
e
u
r
3
,
v
al
e
u
r
4
);
Limiter les
dimensions
Type
Proprit
Valeurs possibles
cette valeur revient utiliser la valeur "scroll".
162
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Positionnement
Type
Proprit
Valeurs possibles
float
163
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Proprit
Valeurs possibles
Pour les listes non ordonnes (<ul>) :
o
o
o
o
Type de liste
list-styletype
o
o
o
o
o
o
Position en
retrait
Puce
personnalise
list-styleposition
list-styleimage
Code : CSS
164
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Proprit
Valeurs possibles
1
li
st
st
yl
e
i
m
a
g
e
:
u
rl
("
i
m
a
g
e
s
/
p
u
c
e
.
p
n
g
")
;
Mga-proprit list-style
de liste
Vous pouvez runir les valeurs de list-style-type, list-styleposition et list-style-image. Vous n'tes pas obligs de mettre
toutes les valeurs, et l'ordre n'a pas d'importance.
Exemple :
Code : CSS
165
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Proprit
Valeurs possibles
1
li
st
st
yl
e
:
i
n
si
d
e
s
q
u
a
r
e
;
166
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Proprit
bordercollapse
Position du
titre
caption-side
Valeurs possibles
collapse : les bordures du tableau et des cellules sont
mlanges.
separate : les bordures du tableau et des cellules sont
spares (par dfaut).
show : les bordures des cellules vides sont affiches.
collapse : les cellules vides sont masques (par dfaut).
Indique la position du titre du tableau, dfini via la balise
<caption>
top : en haut du tableau
bottom : en bas du tableau
left : gauche du tableau
right : droite du tableau
167
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Autres proprits
Type
Curseur de
souris
Proprit
cursor
Valeurs possibles
auto : curseur automatique (par dfaut)
default : curseur standard
pointer : curseur en forme de main, comme quand on pointe sur un
lien
text : curseur utilis quand on pointe sur du texte
wait : curseur utilis pour indiquer une attente (sablier)
progress : curseur utilis pour indiquer une tche de fond (curseur
avec sablier)
help : curseur en forme de point d'interrogation, indiquant une aide
move : curseur en forme de croix, indiquant un dplacement
possible
n-resize : flche vers le nord
ne-resize : flche vers le nord-est
e-resize : flche vers l'est
se-resize : flche vers le sud-est
s-resize : flche vers le sud
sw-resize : flche vers le sud-ouest
w-resize : flche vers l'ouest
nw-resize : flche vers le nord-ouest
url : curseur personnalis, de type .cur ou .ani. Exemple :
Code : CSS
168
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Type
Proprit
Valeurs possibles
1
c
u
r
s
o
r:
u
rl
("
i
m
a
g
e
s
/
c
u
r
s
e
u
r.
c
u
r
")
;
169
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON
Webographie
Ce cours est compil partir des sites :
http://commentcamarche.net
http://siteduzero.com
http://elitwork.com
170
INITIATION A LA CONCEPTION DES PAGES WEB STATIQUES :
NOTION DE XHTML ET CSS >> DEUXIEME PARTIE : CSS
Support compil par A. ATADEGNON