FrancaisAdobe Flex Tutorial
jeux flash gratuit

[Web] - Créer un design CSS centré/étirable sur 3 colonnes avec header et footer


Tutorial - Faire un site centré extensible sur trois colonnes avec en-tête et pied de page
design css 3 colonnes étirable centré

Pour la création du design de Pixtiz, j'avais décidé que mon design serait plutôt classique avec header pour le multi-langue et footer pour le menu annexe.
Pour le contenu, il serait réparti sur trois colonnes: à gauche le menu et les sites partenaires, au centre le contenu et à droite la publicité et les utilisateurs en ligne.
Le tout serait bien sur au centre de la page et pas aligné sur un bord.
Au cours de la création de mon fichier CSS, j'ai été confronté à beaucoup de bugs et d'obstacles qui semblent revenir souvent dans la création de ce type de design.

Le code est propre, n'utilise aucun hack CSS, et fonctionne parfaitement sous Internet Explorer que sous Firefox.
Le but de ce tutorial est de vous montrer comment contourner ces problèmes. Un fichier CSS "modèle" est en téléchargement sur cette page.







La structure de div à adopter

Le design adopté ici sera adapté à une résolution de 800 par 600.

Si vous voulez le transformer en design pour une résolution 1024, vous n'aurez que quelques chiffres à changer ;).
Disposition générale des div:

agencement div 3 colonnes

Dans la disposition que j'ai choisi, le header est situé à l'extérieur du bloc global pour pouvoir faire facilement le raccord au niveau du dégradé de fond et finalement, cela se révèle très pratique.
Les menus et le footer sont compris dans le div #global pour pouvoir les placer facilement.



L'ordre du flux dans le fichier HTML

L'ordre dans lequel il faut donner le flux n'est pas classique et n'est pas celui auquel on s'attendrait à avoir intuitivement.

On serait tenté de faire header/menu_gauche/page_principale/menu_droite/footer et pourtant pour des problèmes de positionnement, vous devrez adopter l'ordre suivant :
<div id="header">
<!-- contenu du header -->
</div>
<div id="global">

<div id="menu_gauche">
<!-- contenu du menu de gauche -->
</div>
<div id="menu_droite">
<!-- contenu du menu de droite -->
</div>
<div id="page_principale">
<!-- contenu de la page principale (étirable) -->
</div>
<div id="footer">
<!-- contenu du footer -->
</div>

</div>

Le menu de droite se place ici avant le menu principal.
Si vous ne le faîtes pas, votre menu de droite apparaît sous la page principale.







Centrer son design (header et page principale)

Pour centrer son design, il faut utiliser le margin:auto css.
Vous devez aussi préciser la hauteur (height) pour afficher complètement le background CSS du header.
Pour un design 800x600, prenez une largeur de 775 pixels.

Tout d'abord, pour corriger un bug d'affichage sous Internet Explorer, placez ce code dans la balise body de votre CSS:
margin: 0px;
text-align: center;


Dans le cas du bloc #global, ne précisez pas hauteur afin de rendre cette partie extensible
margin-left: auto;
margin-right: auto;
width:775px;




Positionner les menus en float

Pour pouvoir positionner les menus correctement et pas les une en dessous des autres, vous allez utiliser la commande CSS float:.
Toujours pour afficher le background CSS complètement, on fixe la hauteur de bloc à 395 pixels.

Ainsi, pour le menu de gauche, on aura :
float:left;
position:relative;
width: 18%;
height:395px;
Et on fixe le menu de droite en float:right; :
float:right;
position:relative;
height:375px;
width: 137px;




Faire une page principale étirable entre les menus

Grâce à cette portion de code CSS, votre page principale va se coller au menu de gauche.
Ici, on ne précise pas la hauteur puisque c'est la page étirable suivant le contenu.

Pour le design de cette partie, vous pouvez assigner un background répétitif sur l'axe des Y qui s'étendra avec la page.
float:left;
position:relative;
left:0px;
width:485px;




Conclure la page avec un footer qui suit l'étirement de la page principale

Placez toujours vos blocs en position relative.
Cette fois-ci, vous devez utiliser la commande CSS clear:both.
Cela aura pour effet de placer le footer en dessous de tous les blocs précédents, le footer suivra donc l'allongement de la page principale automatiquement.

position:relative;
width: 770px;
height:80px;
clear:both;




Modifications et problèmes possibles

Pour effectuer tous vos tests, je vous conseille d'utiliser la WebDeveloper Toolbar qui vous permettra des modifier votre CSS et de voir le résultat en temps réel.
Pour adapter votre design à une autre résolution ou pour afficher correctement les background CSS, vous devez changer les valeurs de width.

Si votre background CSS ne s'affiche pas entièrement, précisez les paramètres width / height de votre bloc CSS.
Si tout n'est pas réglé au pixel près sous Internet Explorer, vous pouvez utiliser des hacks CSS pour IE ou des commentaires conditionnels.



Télécharger les fichiers source HTML et CSS

Voici un exemple simple qui vous permettra de commencer votre site 3 colonnes. Placez ces deux fichiers dans le même dossier pour que le ciblage fonctionne.

Pour enregistrer ces fichiers, clic droit > Enregistrer la cible sous ...

Si vous avez des problèmes avec l'intégration CSS de votre site, laissez un commentaire sur cet article.




Le hack CSS pour des images PNG transparentes sous IE >

< WebDeveloper Toolbar, l'outil webmaster et intégrateur




Commentaires

Vous devez être inscrit pour pouvoir ajouter un commentaire
bouton inscription jeux
Aide | Contact | Règlement | Plan du Site | tutorial illustrator flash css php