CSS pour la mise en forme...
Commencement...
Voici (cette fois petit à petit) le code CSS utilisé pour la mise en forme de ce que nous venons de créer.
Code : CSS 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | body {
width:100%;
margin:0px auto;
font:10pt, "Trebuchet MS", serif;
color:#696969;
}
div#page {
background:url("../images/gauche.png") repeat-y;
}
div#page_bis {
background:url("../images/droite.png") repeat-y top right;
}
|
Ce code ne nécessite (j'espère

) aucune explication mise à part ce point :
pour ma
div page_bis, j'affiche mon image de fond en haut à droite de ma
div.
Si je n'avais pas précisé ce positionnement, la répétition de mon image de fond serait superposée à celle de gauche !
Passons maintenant au contenu de la page avec... la
div contenu 
.
Code : CSS1
2
3 | div#contenu {
margin:0px 18px;
}
|
Comme je l'avais précisé précédemment, cette
div ne sert qu'à une mise en page.
J'applique des marges latérales équivalentes à la largeur de mes images d'encadrement.
Bien : nous avons donc terminé avec nos
div de contenu, nous allons maintenant pouvoir aborder le contenu lui-même

.
Bannière et menu...
Voici à présent le code CSS lié aux
div structurant la page :
banniere,
menu,
corps...
Code : CSS 1
2
3
4
5
6
7
8
9
10
11
12
13 | div#banniere {
padding:20px;
text-align:center;
background-color:#87CEFA;
}
div#menu_barre {
margin-bottom:10px;
padding:2px;
height:26px;
text-align:center;
background:url("../images/barre.png") repeat-x;
}
|
Ces 2 éléments ont une largeur équivalente à la largeur totale de la page moins les marges précisées par la
div contenu.
Concernant la
div banniere, rien à dire, j'ose espérer que vous comprenez tout

.
Même chose pour la
div menu_barre, rien de bien compliqué.
Menu vertical...
Les 3 cadres marqués
menu 1, 2 et 3 sont contenus dans une
div nommée
menu_colonne ; ainsi, le positionnement d'un menu par rapport à son environnement ne se fera qu'une seule et unique fois à travers cette
div 
.
Code : CSS 1
2
3
4
5
6
7
8
9
10
11
12 | div#menu_colonne {
width:14%;
float:left;
margin-left:10px;
}
div.menu_section {
margin-bottom:10px;
padding-left:10px;
background-color:#F5F5F5;
border:1px solid #DCDCDC;
}
|
Bien, passons aux explications (vous commencez à être habitués, je sais

).
Je définis sur ma
div menu_colonne un flottant pour qu'elle se positionne à gauche (nous verrons par la suite pourquoi).
Une fois ces précisions apportées, je suis libre de me créer autant de
div de menu que j'ai besoin à l'intérieur

.
Concernant à présent chaque "sous-menu" en lui-même, tout n'est que mise en forme.
Notez tout de même la marge inférieure servant à espacer chaque menu du suivant

.
Attends une seconde, pourquoi tu utilises un
padding-left alors qu'un
text-indent aurait suffi

?
Ah ! On voit ceux qui font attention à ce que je dis

. Eh bien tout simplement parce que le
text-indent n'agit que sur la première ligne, et que les suivantes reviennent ensuite se coller contre le bord gauche. C'est pourquoi avec le
padding-left, je décale
TOUT le contenu et non pas seulement la première ligne

.
Le corps...
Nous voici arrivés au corps de la page (courage, la fin est proche

). Sans plus tarder, voici le code :
Code : CSS1
2
3
4
5
6
7
8 | div#corps {
width:80.5%;
margin:0px 10px 10px 10px;
padding-left:10px;
float:right;
background-color:#F5F5F5;
border:1px solid #DCDCDC;
}
|
À part les "réglages de base" que je n'expliquerai pas, la seule chose à noter est que mon
corps est placé en flottant à droite.
Et pourquoi tu mets un flottant, dis ?
La réponse est simple : je veux que le corps de ma page commence en dessous de ma barre de menu (sous la bannière) et à droite de ma "colonne de menus". Comme nous utilisons des
div, la seule façon pour que deux
div puissent se situer à une même hauteur (ici, la colonne de menus et le corps), est de leur appliquer un flottant.
Je précise pour ceux qui le souhaiteraient qu'une
div étant un élément de type
block, la création de plusieurs
div les place successivement les unes sous les autres (je n'aborderais pas la possibilité de rendre mes
div de type
inline car je trouve cela inutile dans notre cas).
Attention !
L'utilisation des flottants implique que leurs tailles respectives soient suffisamment basses pour leur permettre de se tenir "côte à côte", sans quoi la seconde div sera effectivement placée sous la première malgré le flottant !
Et la barre de navigation rapide, tu l'oublies là, j'te signale !
Pas tout à fait, non

.
En fait, si vous regardez bien mon image de départ, vous constaterez que la barre de navigation rapide et le corps sont en tous points identiques, si ce n'est la hauteur du corps qui a été étendue avec plusieurs sauts de ligne.
Je vous informe donc que le code CSS est
rigoureusement le même pour ces deux
div 
.
On touche au but : la barre de copyright
Ainsi, nous sommes arrivés au bout du code CSS avec ce dernier extrait :
Code : CSS1
2
3
4
5
6
7
8 | div#copyright {
margin:0px 10px;
text-align:center;
padding:5px 0px;
background-color:#F5F5F5;
border:1px solid #DCDCDC;
clear:both;
}
|
Une fois de plus, rien de bien palpitant à part la dernière ligne.
Je mets en place un
clear : both afin de bien placer ma
div sous la colonne de menus ET sous le corps.
Ainsi, nous voilà au bout du voyage

.
Eh bien voilà : je vous informe que nous avons abordé tout ce que je souhaitais vous faire partager dans ce mini-tuto (qui commence à être long

).
Néanmoins, je ne vous lâche pas comme ça dans la nature (qui a soupiré

?) : je vous incite fortement à lire la section suivante concernant la compatibilité entre IE et FF.