Si l’ami dekal pensait s’en tirer Ă Â si bon compte đ pour balayer les mises en page CSS d’un revers de la main, c’Ă©tait compter sans tout l’amour que je lui porte. J’ai en effet passĂ© 25 terribles minutes Ă Â bidouiller un peu son code pour que la page s’affiche correctement.
Les vingt premiĂšres minutes furent consacrĂ©es Ă Â faire valider le HTML de la page. Du point de vue de la personne qui n’est pas branchĂ©e standards, cette Ă©tape n’est pas absolument nĂ©cessaire pour que la page « s’affiche correctement » dans un certain nombre de navigateurs. Je n’en fais cependant jamais l’Ă©conomie, ayant passĂ© de longues heures Ă Â tenter de rĂ©soudre des « problĂšmes de CSS » qui Ă©taient en fait des problĂšmes de HTML mal structurĂ©.
Une fois le HTML corrigĂ©, les problĂšmes d’affichage persistaient. Le problĂšme le plus gĂȘnant Ă©tait le dĂ©bordement du texte sur la « barre de menu » de droite. Un autre, que je n’avais pas compris au premier coup d’oeil, Ă©tait que l’image de fond pour le contenu occupait une toute petite portion de l’espace en haut de la page, au lieu de la remplir presque entiĂšrement.
Les cinq derniĂšres minutes de mon labeur acharnĂ© se passĂšrent donc dans la feuille de style. Une malencontreuse propriĂ©tĂ© height fut supprimĂ©e dans la dĂ©finition de #blog, et comme par magie, l’image de fond se dĂ©cida Ă Â occuper la place qui lui Ă©tait destinĂ©e. Restait le problĂšme de la largeur du texte. Comme j’en avais eu l’intuition, il Ă©tait dĂ» Ă Â une mauvaise interprĂ©tation du modĂšle de boĂźtes.
J’en profite pour insister sur un point fondamental concernant ce que j’appelle le modĂšle de boĂźtes : la largeur visible de l’Ă©lĂ©ment n’est pas Ă©gale Ă Â la valeur de la propriĂ©tĂ© width. Je sais, ce n’est pas forcĂ©ment ce qu’il y a de plus logique, mais c’est comme ça. Si on ne comprend pas bien ce point, on ne parviendra jamais Ă Â faire des mises en page CSS qui tiennent la route. La largeur visible de l’Ă©lĂ©ment est la somme des valeurs des propriĂ©tĂ©s width, border, et padding. (Je vous laisse transposer cette rĂšgle pour la hauteur.)
Un exemple vaut mieux que mille explications : dekal voulait que la largeur de sa zone texte soit Ă©gale Ă Â 411px. Pour trouver quelle valeur donner Ă Â la propriĂ©tĂ© width, il faut soustraire Ă Â notre largeur visible les largeurs de border et de padding. Dans ce cas-ci : 411px – 2px (deux fois 1px de bordure) – 60px (55px de padding-right et 5px de padding-left) = 349px pour la propriĂ©tĂ© width.
Avec un peu d’habitude et d’entraĂźnement, cela devient tout aussi facile que des tableaux ! (Comme j’aime Ă Â le rĂ©pĂ©ter, une des choses qui rend les tableaux beaucoup plus faciles que les CSS, c’est justement que l’on sait dĂ©jĂ Â utiliser les tableaux, et pas encore les CSS…)
Si tout ceci vous interpelle (on peut rĂȘver !), allez vous promener un peu du cĂŽtĂ© de Pompage.net — en particulier :
Bonne lecture, et Ă Â votre disposition bien entendu si vous avez des questions ou des problĂšmes pratiques sur le sujet !
Mise Ă Â jour: comme je suis vraiment gentille, j’ai rajoutĂ© le bidouillage dans la feuille de style pour que la mise en page passe aussi sous IE Windows.