TUTORIELS 
S'affranchir des tableaux HTML en CSS2
Des exemples d'utilisation de feuilles de style et de positionnement de calques pour concevoir une mise en page sans utiliser de tableaux.  (30 mars 2002)
 

Une mise en page complexe en HTML implique souvent l'utilisation de multiples tableaux imbriqués, alourdissant le code et rendant toute modification fastidieuse.
Pourtant, la puissance des spécifications CSS2 permet d'aboutir à des résultats similaires (et même, dans la plupart des cas, plus aboutis) en quelques lignes. L'approche offre deux avantages:
- tout ce qui concerne la mise en page (la "feuille de style") est séparé du contenu: les modifications sont donc grandement facilitées;
- le code HTML entre les balises <BODY> et </BODY> est réduit à quelques balises seulement (dans notre exemple, nous utiliserons cinq d'entre elles: <DIV>, <H1>, <P>, <A> et <PRE>): en particulier, il n'y a plus de balises <TABLE>, <TR>, <TD>, <B>, <FONT> etc...

Nous ne revenons pas sur les règles CSS et CSS2 qui ont fait l'objet d'une série d'articles dans nos colonnes. Nous allons définir le contenu HTML suivant:

<div id="header">JDNET Développeurs</div>

<div id="colgauche" style="">
<p>
<a href="#">CSS</a><br><a href="#">Javascript</a><br>
<a href="#">XML</a><br><a href="#">PHP</a>
</p>
</div>

<div id="corps">
<h1>S'affranchir des tableaux HTML avec CSS2</h1><br>
<p>
Un exemple de positionnement d'éléments CSS2 permettant de concevoir une mise en page au pixel près sans l'utilisation de tableaux HTML. Il est possible de sélectionner un autre fichier CSS2 en cliquant <a href="#">ici</a>.<br><br>
Voici le fichier css correspondant à la mise en page que vous observez actuellement:
</p>
<br>
<pre>
[Affichage du contenu de la feuille de style]
</pre>
</div>


Sans feuille de style, son affichage donne ceci.

Avec une première feuille de style définissant les éléments "header" (en-tête de page), "colgauche" (colonne de menu habituellement située à gauche) et "corps" (texte propre à la page), ainsi que les règles concernant <H1> (titres), <P> (paragraphes), <A> (liens) et <PRE> (code), on obtient ceci.

On remarquera que le redimensionnement de la fenètre du navigateur s'accompagne en outre de l'ajustement des tailles des élements (colonne de gauche en taille fixe, "header" et corps en taille variable) à la taille de celle-ci.

Pour modifier la présentation de la page, il suffira de changer le fichier .css contenant la feuille de style (dans nos pages d'exemple, le style est inséré directement entre les balises <HEAD>...<STYLE> et </STYLE>...</HEAD>, mais il bien sûr possible d'utiliser un fichier externe).
Une mise en page totalement différente (et où la "colonne de gauche" est maintenant à droite!), peut être observée ici.
Tout cela sans toucher au "contenu" HTML (si ce n'est le texte entre les balises <PRE> et </PRE>, qui n'a aucune influence sur la mise en page).

Ces exemples illustrent l'étendue des possibilités qui s'offrent aux webmasters et aux webdesigners: avec un peu d'imagination, il sera très facile d'aboutir à des résultats stupéfiants et parfaitement maîtrisés.


Les meilleures astuces CSS sur le JDN :
- Comment appliquer les CSS d'une page web au contenu d'une iframe ?
- Comment centrer horizontalement une DIV dans une autre en CSS ?
- Comment créer un arrière-plan (backgroud) CSS extensible et adaptable ?
- Comment définir les cellpadding et cellspacing en CSS ?
- Comment modifier l'image d'un bouton input en CSS ?
- Comment rendre l'arrière-plan d'un élément semi-transparent en conservant le texte de cet élément opaque en CSS ?
- Internet Explorer supporte-t-il l'attribut CSS border-radius

 
[ Jérôme MorlonJDNet
 
Accueil | Haut de page