IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Probleme table width: IE ok FF Nok


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut Probleme table width: IE ok FF Nok
    Bonjour,

    j'ai un souci avec un bout de code tout simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>New document</title>
    </head>
     
    <body>
    <table  width='800px' style='font-size: 8pt; border-collapse: collapse' border='1' cellpadding='0' cellspacing='0'>
     <tr>
      <?php
      for($cpt=1; $cpt <= 59; $cpt++)
      {
        $width = "1%";
        echo "<td width='$width' align='center' valign='middle'>&nbsp;</td>\n";
      }
      ?>
     </tr>
    </table>
    </body>
     
    </html>
    Sous IE, chaque case a la meme taille et si on change la taille globale du tableau -> pas de souci
    En revanche sous FF, les cases ont la meme taille au debut, mais les dernieres sont toutes ratatinées...

    Je seche..si vous avez une idee, je suis preneur

    merci d'avance

  2. #2
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    il y a un problème vu qu'elles font 1% de 800px et que tu fais 60 boucles, ça fait 60% pas 100%
    Essaie de voir en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for($cpt=1; $cpt <= 59; $cpt++)
      {
        echo "<td width='8px' align='center' valign='middle'>&nbsp;</td>\n";
      }

  3. #3
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par défaut
    salut nalixis,

    Tu mets en variable php la taille du nbre de colonnes (). Tu évalues (une seule fois, cad PAS A L INTERIEUR DE LA BOUCLE !!), la taille en % d'une cellule comme ceci (avant la boucle for, donc):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $width = 1/$nbColonnes*100."%";
    ca fait qqchose comme 1.7%

    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut
    salut,

    1. En fait la taille de la table n'est pas fixe en réalité, elle est de 80%.

    2. J'ai essayé de faire en sorte que la somme des largeurs des colonnes fassent 100% en rajoutant comme tu conseilles le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $nbColonnes = 59;
    $width = ((1/$nbColonnes)*100)."%";
    Le résultat est le même: les dernieres colonnes sont moins large.

    J'ai essayé de répartir la taille globale avec du "1*" par exemple mais c'est encore pire !

  5. #5
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    tu devrais essayer comme je t'ai expliqué : en donnant une taille fixe pour le coder en dur et après à partir de cette taille fixe, de la faire en dynamique pour voir d'où peut venir le problème.

    PS : ça ne changera surement rien mais ton \n ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<td width='$width' align='center' valign='middle'>&nbsp;</td>\n";
    doit afficher \n non? tu devrais plutôt utiliser <br />.
    Aute petit truc, utilise un caractère d'échappement et les doubles-côtes pour les valeurs de tes attributs plutôt que les simples côtes

  6. #6
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par défaut
    non, je pense que le "\n" permet juste aux lignes en de s'afficher les unes sous les autres.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut
    salut,

    Réponse à tes conseils:
    en effet, en fixant la largeur du tableau et celles des cellules ca marche sous IE et FF (sachant que c'est la taille du tableau qui predomine)

    en revanche des qu'on passe en % ca deconne de nouveau sous FF.

    En poussant un peu les recherches je me suis apercu que ca ne marchait pas lorsque la valeur de width est un nombre décimal !
    Il semblerait qu'IE l'interprete ou l'ignore alors que FF galere..bizarre


    Mais je pense avoir trouvé une solution:
    si je laisse la taille du tableau en dynamique (ex 80%) et que je fixe la taille des cellules a une valeur supérieure à la réalité, alors ca marche !

    ex: tableau 80%, 59 cellules, ecran 1024px:
    largeur cellules = (80%*1024)/59 = 13.8px
    On fixe alors la largeur a 20px -> ca roule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>New document</title>
    </head>
     
    <body>
    <table width="80%" style='font-size: 8pt; border-collapse: collapse' border='1' cellpadding='0' cellspacing='0'>
     <tr>
      <?php
     $width = "20";
     
     for($cpt=1; $cpt <= 59; $cpt++)
      {
        echo "<td width='$width' align='center' valign='middle'>&nbsp;</td>\n";
      }
      ?>
     </tr>
    </table>
    </body>
     
    </html>
    Merci pour votre aide,

    A+

    PS: le "\n" va avec le "echo" du code php, il a simplement pour effet d'ecrire le code html a la ligne lors de l'interpretation.

Discussions similaires

  1. Probleme TABLE ACCESS BY INDEX ROWID
    Par Mehdilis dans le forum Oracle
    Réponses: 3
    Dernier message: 05/07/2007, 08h01
  2. Probleme Table mutante
    Par Amazigh dans le forum Administration
    Réponses: 2
    Dernier message: 14/05/2007, 16h53
  3. Probleme Tables Imbriquées(Nested Tables)
    Par lemagicien dans le forum SQL
    Réponses: 1
    Dernier message: 21/03/2007, 16h02
  4. Probleme table IE & Opera
    Par jacquesprogram dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/09/2006, 13h59
  5. probleme table
    Par didus dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/10/2005, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo