28173 sujets

CSS et mise en forme, CSS3

Boujour à tous !
voila mon bug

la structure de ma page est faite de tableau (pas de div je sais c'est pas bien mais bon ...)

la structure est :
<table>
<tr><td>Ligne 1</td></tr>
<tr><td>Ligne 2</td></tr>
<tr><td>Ligne 3</td></tr>
</table>

Ce que je souhaite c'est que ma ligne 3 s'étire pour que mon tableau occupe toute la page verticalement.

en propriétés j'ai donc
html, body { height:100%; }
pour mon tableau : <table height="100%">
et pour ma 3eme ligne : <tr><td height="100%">Ligne 3</td></tr>

Ca marche sous firefox mais sous IE ca me donne une derniere ligne qui doit faire la hauteur de ma page et donc une enorme ScrollBar.

Help me please !

Et Merci d'avance !
Bonjour,

Si tu demandes que ton tableau fasse 100% et que ta dernière celulle qui est elle même contenue dans le tableau fasse 100% ça ne peut pas marcher...

Tu as essayé en faisant quelque chose comme 5%, 5%, 90% ou 10%, 10%, 80% ?
Modifié par EricLB (21 Dec 2005 - 13:04)
ouai j'ai essayé le tableau ne s'affiche plus correctement ni sous Firefox ni sous IE.

ce qui est bizarre c'est que mon truc height="100%" pour mon tableau et pour mon dernier TR ca rend ce que je souhaite sous Firefox...

Je cherche donc un truc pour que ma derniere ligne du tableau aille jusqu'au pied de la page.
je viens de trouver d'ou vient le probleme : du DOCTYPE !

lorsque je retire :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


l'affichage est nikel !

mon souci c'est que j'ai besoin du DOCTYPE pour les CSS ...
Bien le bonjour à tous. Ce sujet est assez vieux, mais j'aimerais le remettre au gout du jour. Il rejoint en effet un problème que j'ai découvert il y a quelques jours en travaillant sur la maquette d'un site pour un client.

Je m'explique :

Pour commencer, il se trouve que je suis obligé de respecter la dtd xhtml transitional, d'où l'utilisation du DOCTYPE en début de page.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Bon maintenant, sachez aussi que j'ai lu pas mal de chose, y compris sur alsacreations concernant le respect des normes, le wc3, le height:100% et patati et pata, même un article très interessant sur le rendu "compatible" et le rendu "strict". Ceci dit, voilà ce dont je me suis rendu compte.

Apparement, avec la déclration DOCTYPE (cf. ci-dessus), le rendu d'une valeur height:100% sous FireFox et Internet Explorer n'est pas le même (FireFox v. 1.5.0.1 et IE v. 6.0.....). En effet, il semble que pour FireFox, cette valeur attribuée à un élément lui donne comme "véritable" auteur la auteur restante de sons élément parent. IE lui attribur 100% de la hauteur de l'élément parent. Un petit exemple pour vous rendre compte. Voici donc une page toute bête :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" style="height:100%">
<head>
    <title>Page sans titre</title>
</head>
<body style="height:100%;padding:0px;margin:0px 0px 0px 50px" >
<table style="height:100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td style="height:10px;width:10px">a</td>
    </tr>
    <tr>
        <td>b</td>
    </tr>
</table>
</body>
</html>


Enorme n'est-il pas ! Vous noterez donc l'utilisation du DOCTYPE. Les éléments body et html on un style height:100%. Ensuite vient un tableau lui aussi en 100% avec deux lignes, l'une de 10px et l'autre pour l'instant sans hauteur spécifiée. Déjà là, on peut observer une différence entre FF et IE. Alors que FF nous rend bien une cellule de 10px et l'autre de "reste de la hauteur du parent", IE lui n'a pa l'air de comprendre. Alors, là, je vous vois venir, vous vous dites "oui mais faut ajouter height:100% à la dernière ligne". Et bien faites..... Alors ? Vous devez vous retrouver avec effectivement la première ligne/cellule à 10px et l'autre qui a l'air de faire 100%. Mais elle n'en à que l'air, puisque comme j'ai essayé de vous expliquer pus haut, sous IE, vous vous rendrez compte que la dernière ligne fait maintenant véritablement 100% de la hauteur du tableau, et donc du body et donc de html. Alors que FF lui continu de nous afficher u tableau de 100% avec une ligne de 10px et l'autre du reste de la hauteur disoponible. Maintenant, enlevez la DTD pour voir, ou ajoutez un carractère en tout début de page pour faire basculer IE en mode de rendu "compatible".

L'exmple est ici simpliste, mais dans le cadre d'une maquette complète, cela peu rapidement poser problème (c'est d'ailleurs mon cas). Mes questions sont donc les suivante.

Déjà, arrivez vous aux même constatations ?
Voyez vous une autre explication que "c le rendu qui n'est pas gérer de la même façon"
Le faite de faire baculer IE permet il tjs de dire que l'on respecte la DTD ?

Voilà, j'espère avoir été assez clair. Si vous ne coprenez pas bien, je peux tenter d'être plus explicite.
Modifié par Zadig (23 Mar 2006 - 09:18)
bonjour,

j'ai le même problème et je cherche la solution..
avez vous trouvé une explication ?

d'avance merci
Un tableau ne peut pas avoir une hauteur définie comme ça. L'attribut height n'existe absolument pas (même pas déprécié). On peut le définir en CSS, mais bon, vaut mieux éviter.

Le mieux, c'est de ne pas utiliser de tableaux pour la mise en page, on ne le répètera jamais assez, y'a beaucoup trop de problèmes Smiley decu