Les tableaux (x)html

Mise en page

Ancienne méthode de layout

Ce code est toujours valide et s'affichera correctement dans la plupart des navigateurs.
Cependant, depuis le 31/07/2003 l'infobrol n'est plus affiché en utilisant des tableaux pour contrôler sa mise-en-page, mais une combinaison de css et de classe.
Cette page montre donc comment se libérer des tableaux pour la mise en forme.

Comme nous l'avons vu dans l'introduction, de nombreuses mises en pages reposent sur l'utilisation de tableaux. Nous savons aussi que l'affichage d'un tableau nécessite des calculs, et donc prend du temps. Il est dès lors possible de séparer les éléments du tableau principal en éléments plus petits et donc plus rapides à afficher.

Prenons par exemple le cas d'une page composée d'un tableau principal en trois parties : une barre de navigation supérieure, une barre de navigation latérale, et le contenu réel de la page.
Voici le code qui serait généré par un éditeur WYSIWYG :

  1.   <tr>
  2.     <td colspan="2">
  3.       <!-- Barre de navigation supérieure//-->
  4.     </td>
  5.   </tr>
  6.   <tr>
  7.     <td>
  8.       <!-- Barre de navigation latérale //-->
  9.     </td>
  10.     <td>
  11.       <!-- Contenu de la page //-->
  12.     </td>
  13.   </tr>

Nous devrions opter pour une mise en page en deux tableaux. Ces derniers seraient donc chargés individuellement, ce qui nous permet d'accélérer l'affichage du premier, au lieu d'attendre que toute la page soit chargée.

  1.   <tr>
  2.     <td>
  3.       <!-- Barre de navigation supérieure//-->
  4.     </td>
  5.   </tr>
  6.   <tr>
  7.     <td>
  8.       <!-- Barre de navigation latérale //-->
  9.     </td>
  10.     <td>
  11.       <!-- Contenu de la page //-->
  12.     </td>
  13.   </tr>

Cette technique nous permet d'accélérer l'affichage du bandeau supérieur, mais peut générer certains espaces vides, ou des incohérences d'affichages sous Internet Explorer pour Mac par exemple. Il est donc préférable de tester la mise en page sous différents navigateurs.

Contents Haut

Chacun son style...

L'exemple précédent montre qu'il est possible de réaliser une mise en page qui s'affichera plus rapidement, mais qui reste soumise aux comportements capricieux des navigateurs face aux tableaux.
Nous allons donc réaliser le même type de mise en page à l'aide des balises div, qui puisent leurs informations dans notre feuille de style (CSS).

Par l'utilisation des feuilles de style CSS2, nous gagnons en souplesse dans la mise en page. En effet, il suffit de modifier la feuille de style pour modifier la mise en page du document.
Nous devrons donc veiller à ne plus utiliser de référence à des positions, en nommant de préférence les attributs en fonction du contenu.

  1. <div id="b_s">
  2.   <!-- Barre de navigation supérieure//-->
  3. </div>
  4. <div id="c">
  5.   <!-- Contenu de la page //-->
  6. </div>
  7. <div id="b_l">
  8.   <!-- Barre de navigation latérale //-->
  9. </div>

Les informations de styles seront donc les suivantes :

  1. <style type="text/css">
  2.   <!--
  3.   div#b_s
  4.   {
  5.     background:#ffff00;
  6.     width:auto;
  7.     margin:0;
  8.     padding:0.5em;
  9.   }
  10.   div#c
  11.   {
  12.     float:right;
  13.     width:75%;
  14.     background:#0000ff;
  15.     margin-left:25%;
  16.     padding:0.5em;
  17.   }
  18.   div#b_l
  19.   {
  20.     background:#ff0000;
  21.     margin-right:75%;
  22.     padding:0.5em;
  23.   }
  24.   //-->
  25. </style>

float:right

La déclaration du style et le code html de la page peuvent vous heurter : les plus curieux d'entre-vous auront remarqué que je présente le contenu de la page avant celui du menu de navigation qui se trouve pourtant à gauche dans la page.
Nous pouvons réaliser ce genre d'opération grâce à la déclaration float:right  qui détermine l'affichage du contenu de la page. Ceci est assez important lors du référencement dans les moteurs, car le code placé en haut de page est considéré comme ayant plus de pertinence.

Contents Haut

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 21/07/2002, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/html-optimisation-tableaux-suite.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.