Magazine Graphisme

Le retour des tables via CSS (après la guerre)

Publié le 23 octobre 2008 par Daxlebo
Le retour des tables

On vous disait depuis des années que les tables, c'était pas bien pour la mise en page. Eh bien aujourd'hui, Digital Web Magazine, ardent défenseur du web sémantique et du positionnement en CSS nous donne une nouvelle leçon : les tables sont de retour. Une chance d'en finir avec l'un des casse-têtes les plus complexes que les webdesigners ont rencontré depuis l'abandon des tables de layout.

Le retour des tables

On vous disait depuis des années que les tables, c'était pas bien pour la mise en page. Eh bien aujourd'hui, Digital Web Magazine, ardent défenseur du web sémantique et du positionnement en CSS nous donne une nouvelle leçon : les tables sont de retour. Il nous montre comment les évolutions d'Internet Explorer 8 (après Safari, Firefox et les autres bien entendu) nous permettront d'en finir avec l'un des casse-têtes les plus complexes que les webdesigners ont rencontré depuis l'abandon des tables de layout.

Mais attention, on ne va pas revenir aux balises <table> pour structurer son code ! Nous parlons ici d'un code sémantique, respectueux des standards, mais qu'un peu de CSS rend - magie - aussi flexible que les tables. Il s'agit de donner à un élément l'attribut display:table. Il se comportera dès lors comme une table, et ses descendants comme des cellules de tableau. Voici un exemple de code :

<style>
.table {
    display:table;
    border-collapse: separate;
    border-spacing:1em;
    border:1px dashed black;
}

.colonne {
    width:150px;
    display:table-cell;
    background-color:#452300;
    color: #fff;
}

</style>

    <div class="table">

          <div class="colonne">Le contenu s'étend pour s'adapter au contenu de la deuxième colonne.</div>
          <div class="colonne">
              <p>Cette colonne a un contenu plus important et s'étend naturellement vers le bas pour s'adapter.</p>
              <p>C'est ce que fait une DIV ordinaire.</p>
          </div>


  </div>


Si votre navigateur est compatible, vous verrez deux colonnes de même hauteur.

Le contenu s'étend pour s'adapter au contenu de la deuxième colonne.

Cette colonne a un contenu plus important et s'étend naturellement vers le bas pour s'adapter.

C'est ce que fait une DIV ordinaire.

Pour ceux qui ont un navigateur encore à la traîne, le pseudo-tableau devrait ressembler à ceci :

Pseudo-tableau en CSS

Je ne refais pas toute la démonstration, l'article publié par Rachel Andrew sur Digital Magazine est en anglais mais les exemples de code sont parlants.

Des mises en pages simplifiées

Ce que cela signifie ? La libération du webdesign ! Finis les bricolages avec des images de fond coloréés (ou encore des scripts qui recalculent les dimensions) pour "étendre" artificiellement un bloc à la hauteur d'un autre. La mise en page retrouve une partie de la souplesse qu'elle avait perdue.

Il ne reste plus qu'à patienter le temps que IE 8.0 s'impose et remplace les IE 7.0 et autres 6.0 encore en activité. Plus que quelques années ?...


Retour à La Une de Logo Paperblog

A propos de l’auteur


Daxlebo 16 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte