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 :

[W3C] équivalent d'un height 100% sur un TR d'un TABLE


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 90
    Par défaut [W3C] équivalent d'un height 100% sur un TR d'un TABLE
    Bonjour

    voilà mon problème :
    je veux faire une page avec 3 zones horizontale (une entête, un corps et un bas de page). les 3 zones doivent toujours être visible.
    l'entête et le bas de page doivent avoir une taille fixe.
    le corps lui doit prendre tout le reste de la page (et donc se redimentionner si l'utilisateur redimentionne sa fenêtre)
    voilà le code que j'ai pondu.

    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
    <html>
    <head></head>
    <body>
    <table border="0" width="100%">
      <tr height="50">
        <td bgcolor="red"></td>
      </tr>
      <tr height="100%">
        <td bgcolor="green"></td>
      </tr>
      <tr height="50">
        <td bgcolor="blue"></td>
      </tr>
    </table>
    </body>
    </html>
    Ce bout de code marche impec sous ie6 et FF.
    ie et ff ne trouve pas de doctype et affiche la page en utilisant un "vieux" système de rendu.
    Par contre opera lui n'aime pas du tout ca et n'affiche la seconde ligne que sur 1 pixel. (alors que je veux que l'ensemble du navigateur soit couvert)

    J'ai ainsi essayé de trouver le doctype adéquate, et de passer ma page au validateur w3c. Et là j'ai trouvé aucun doctype qui me permette d'avoir ce que je veux (du coup dès que je met un doctype ca fait pas ce que je veux ni sous ie, ni sous ff ni sous opera)

    puis là j'ai regardé les DTD w3c et j'ai vu qu'il n'y avait pas de height sur les <table> et <tr>.

    alors voilà du coup je sais plus comment faire.

    en utilisant des DIV ca marcherait mieux ?
    est ce que quelqu'un pourrait mettre en forme mon bout de code pour avoir un truc compatible pour les 3 navigateurs.



    merci

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Code html : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Exemple</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <style type="text/css">
    * {
    margin: 0;
    padding: 0;
    }
    #header {
    height: 100px;
    background-color:darkred;
    }
    #centre {
    background-color:gray;
    }
     
    #pied {
    height: 30px;
    background-color:darkred;
    }
    </style>
    </head>
     
    <body>
     
          <div id="header">HEADER</a>
     
    </div>
     
          <div id="centre">
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
            Fusce ut purus. Ut ut diam. Praesent consequat condimentum
            massa. Praesent congue semper erat. Mauris ut dui ut arcu
            iaculis ornare. Quisque dignissim massa at libero. Sed faucibus.
            Vivamus tortor nibh, venenatis vitae, ornare vel, posuere vel,
            quam. Praesent erat. Cras lacus. Nulla sed arcu vel pede
            convallis tristique. Suspendisse elementum venenatis nulla.
            Mauris faucibus, metus blandit pulvinar gravida, ipsum tortor
            vestibulum elit, ut lacinia nibh purus non tortor.</p>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
            Fusce ut purus. Ut ut diam. Praesent consequat condimentum
            massa. Praesent congue semper erat. Mauris ut dui ut arcu
            iaculis ornare. Quisque dignissim massa at libero. Sed faucibus.
            Vivamus tortor nibh, venenatis vitae, ornare vel, posuere vel,
            quam. Praesent erat. Cras lacus. Nulla sed arcu vel pede
            convallis tristique. Suspendisse elementum venenatis nulla.
            Mauris faucibus, metus blandit pulvinar gravida, ipsum tortor
            vestibulum elit, ut lacinia nibh purus non tortor.</p>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
            Fusce ut purus. Ut ut diam. Praesent consequat condimentum
            massa. Praesent congue semper erat. Mauris ut dui ut arcu
            iaculis ornare. Quisque dignissim massa at libero. Sed faucibus.
            Vivamus tortor nibh, venenatis vitae, ornare vel, posuere vel,
            quam. Praesent erat. Cras lacus. Nulla sed arcu vel pede
            convallis tristique. Suspendisse elementum venenatis nulla.
            Mauris faucibus, metus blandit pulvinar gravida, ipsum tortor
            vestibulum elit, ut lacinia nibh purus non tortor.</p>
          </div>
     
          <div id="pied">pied de page</div>
     
    </body>
    </html>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 90
    Par défaut
    re



    non ce n'est pas du tout ca ce que je veux.
    Dans le script précédent le pied de page suite directement le corps.

    Je voudrais que même si le corps de la page est vide et bien le pied de page soit tout en bas du navigateur et avoir une zone vide qui prend presque toute la page.
    De même si l'utilisateur réduit la fenêtre je veux pas que je pied de page disparaisse.
    Je veux vraiment que le rendu soit identique a celui de ce code là sous ff.
    mais en ajoutant un doctype et en le rendant compatible à opéra.

    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
    <html>
    <head></head>
    <body>
    <table border="0" width="100%">
      <tr height="50">
        <td bgcolor="red"></td>
      </tr>
      <tr height="100%">
        <td bgcolor="green"></td>
      </tr>
      <tr height="50">
        <td bgcolor="blue"></td>
      </tr>
    </table>
    </body>
    </html>
    des idées ???

    merci

  4. #4
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #footer {
        position: absolute;
        bottom: 0;
        }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 90
    Par défaut


    reprise du bout de code

    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
    26
    27
    28
    29
    30
    31
    32
    33
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Exemple</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <style type="text/css">
    * {
    margin: 0;
    padding: 0;
    }
    #header {
            height: 100px;
            background-color:#99FF99;
    }
    #centre {
            background-color:#0066CC;
    }
     
    #pied {
            position: absolute;
        bottom: 0;
            height: 100px;
            background-color:#CC9900;
            width:100%
    }
    </style>
    </head>
    <body >
    <div id="header"></div>
    <div id="centre"></div>
    <div id="pied"></div>
    </body>
    </html>

    comme on peut le voir avec ca, le partie central (de couleur #0066CC) n'est pas là., on voit une grosse zone blanche a la place.
    en pratique je voudrais la même chose que ce qui est afficher avec du #0066CC à la place du blanc.

    En fait le truc c'est que derrière ca y'aura une carte qui se redimentionne automatique par rapport à la taille de cellule (div ou td) sur laquelle est est. c'est pour cela que j'essai d'avoir une zone central qui prend le maximum de place même a vide.

    merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 90
    Par défaut
    bon alors j'ai pas trouvé mieux que de faire ca en javascript

    et de mettre dans le head
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script>
                    /*initialiser la surveillance de Netscape*/
                            
                    if(!window.largeur && window.innerWidth)
                    {
                            window.onresize = chargement;
                    }
                    </script>
    dans le body
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
                    <!--
                     /*initialiser la surveillance par l'Explorer Internet MS*/
                     if(!window.largeur && document.body && document.body.offsetWidth)
                      {
                       window.onresize = chargement;
                      
                      }
                    //-->
                    </script>

    la fin du body

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script>
                            chargement();
                    </script>

    et la méthode chargement

    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
    function hauteur_fenetre()
    {
     if (window.innerHeight) return window.innerHeight  ;
     else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
     else return 0;
    }
     
     
    function chargement() {
    	var h1 = document.getElementById("header").offsetHeight;
    	var h2 = document.getElementById("pied").offsetHeight;
     
     
    	var hh = hauteur_fenetre();
    	var size = (hh -(h1+h2));
    	document.getElementById("centre").style.height = ""+ size +"px";
     
    }
    voilà c'est quand meme bien galère du coup, mais pas trouvé mieux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Application d'un height 100% sur une image sans effet
    Par Earthwormjim dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 26/05/2009, 01h28
  2. height :100% sur Mozilla Firefox
    Par mike_chti dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 26/10/2008, 20h53
  3. [css]opéra height 100% absolute
    Par spirou dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 08/10/2005, 22h10
  4. [W3C] height="100%" différent de style="height:100%
    Par Oluha dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 18/08/2005, 17h14
  5. [HTML] Height à 100% sur Img sous IE
    Par lord_paco dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/08/2005, 11h04

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