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

Mise en page CSS Discussion :

tableau 100% à 3 lignes dont deux de hauteurs fixes


Sujet :

Dimensionnement en CSS

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut tableau 100% à 3 lignes dont deux de hauteurs fixes
    bonjour bonjour!

    Voici mon problème, j'aimerai réaliser une mise en page de ce style-ci:

    __________
    |_________|
    |_________|
    |_________|

    Sachant que:
    - Le tout fait 100% de largeur et hauteur.
    - La premier et dernier blocks font 75px de hauteur
    - Le block central s'adapte pour remplir le reste des 100%.

    De plus, j'aimerais que si le contenu, apparaissant dans le block central, est plus long que la hauteur de celui-ci, une barre de scroll s'affiche dans le bloc central (et non pas sur toute la hauteur de la page).

    Je suis déjà passé par plusieurs faq, mais rien y fait, je ne trouve pas de solution, ni avec des <div>, ni avec des <table>.

    Dernière précsion: j'aimerai que ceci fonctionne sous ie6,ie7,ff et opéra.

    Merci de votre future aide!

  2. #2
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Salut !

    Pour ce qui est de la barre de défilement tu peux faire un truc du style :

    overflow: auto ou
    overflow: scrollbar je sais plus la différence mais tu auras bien ta barre de défilement la ou tu le souhaites !

    Bon courage.
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    overflow: auto;
    ou
    overflow: scroll;

    Oui, mais le problème n'est pas vraiment là. Il se situe plutôt au niveau de la mise en forme...

  4. #4
    Membre averti Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Points : 316
    Points
    316
    Par défaut
    Regarde ce lien : ICI
    Je sais pas si c'est exactement ça que tu veux...

    Le code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <div id="contener">
        <div id="haut">
            <p>Haut</p>
        </div>
        <div id="milieu">
            <p>Milieu </p>
            <p>TEXTE</p>
        </div>
        <div id="bas">
            <p>Bas</p>
        </div>
    </div>

    Le code CSS :

    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
     
    #contener{
        width : 850px;
        background-color : #F5F5F5 ;
        margin : auto ;
    }
    #haut{
        height : 75px;
        background-color : #CC3300 ;
    }
    #milieu{
        height : 300px ;
        overflow : auto ;
        background-color : #FFFFFF ;
        text-align : justify ;
    }
    #bas{
        height : 75px;
        background-color : #CC3300 ;
    }
    La propriété overflow auto = gestion auto du scroll horizontal et vertical en fonction du contenu
    La propriété overflow scroll = force les scroll - elles sont placées même sil il n'y en a pas besoin

    Mon Blog : http://www.openwab.com
    Développement Web : Wordpress, HTML, CSS, PHP, jQuery
    Infrastructure : Virtualisation, Stockage, Déduplication

    There are 10 types of people in the world: those who understand binary, and those who don't

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Merci pour la proposition de code, en fait, c'est presque ça. Le problème, c'est le "presque"...

    Ici, le "conteneur" ne fait pas 100% de la hauteur de la fenetre, et la taille de "milieu" est fixée.

    Le design doit être fluide en hauteur, et les blocks supérieur et inférieur doivent coller les bords hauts et bas de la fenetre, et ce, quelque soit le contenu de "milieu" (et c'est là que je me heurte à un mur).

    J'espère que j'me fais bien comprendre, ce n'est pas toujours évident

  6. #6
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Il faut impérativement que tes 2 blocs bas et haut fassent 75px de hauteur? Parce que ça simpliferait la chose si mettons, tu leurs donnais une hauteur en % ...
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ahhh... ça je m'en doute que ça simplifierait les choses :-)

    Oui, c'est impératif. Ces deux blocs contiennent des images aux dimensions fixes.

  8. #8
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Je viens de faire ça qui fonctionne uniquement sur Firefox :

    http://josselin.willette.free.fr/cod.../headfootfixe/

    A adapter pour IE6.

    Sinon, je suis de l'avis de GyZmoO.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ouip, je suis passé par là aussi.

    2 problèmes:
    - Les blocs du haut et du bas sont en position: fixed, non reconnu par ie < ie7
    - La scrollbar prend toute la hauteur de la fenetre, au lieu de ne prendre que toute la hauteur du block central. Mais bon, ça je suppose qu'il y a moyen de règler le prob en remplaçant le padding du block central par un margin.

    Bref, cette solution aurait été adéquate s'il n'y avait pas eu ie6 dans le jeu... as usal . Là, on est proche de ce que je recherche... En fait, on y est, mais pas pour ie6. Et je ne peux pas exclure 50% des utilisateurs.

  10. #10
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Utiliser le Javascript ne te dérange pas ? Parce que je ne pense pas qu'on puisse sans sortir sans :

    1. si tu dois garder des valeurs fixes pour le header et le footer
    2. si tu veux être totalement crossbrowser

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Non, pas vraiment. En fait le site propose un jeu complètement réalisé en AJAX, donc un peu plus ou peu moins de JS...

    Mais j'aurais préféré ne pas utiliser JS pour ça, question de propreté . Et si je me souviens bien, les simulations de position: fixed avec JS sont un peu bancales.

    sinon, que pensez vous de ça pour ie6:
    http://web.tampabay.rr.com/bmerkey/e...ion-fixed.html
    ?

  12. #12
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par shushed Voir le message
    Mais j'aurais préféré ne pas utiliser JS pour ça, question de propreté
    Je comprends oui, mais des fois on n'a pas le choix. ^^

    Citation Envoyé par shushed Voir le message
    Et si je me souviens bien, les simulations de position: fixed avec JS sont un peu bancales.
    Je ne pensais pas à une simulation de position:fixed, mais plutôt à mettre le footer et le header en position:absolute et calculer la taille du corps en fonction de la hauteur de la fenêtre.

    Citation Envoyé par shushed Voir le message
    sinon, que pensez vous de ça pour ie6:
    http://web.tampabay.rr.com/bmerkey/e...ion-fixed.html
    ?
    Ben c'est un peu ce que j'ai utilisé, mais je trouve ce genre de procédé assez limite, étant donné que les navigateurs ne réagiront pas la même manière.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    hummmm... ouip.

    Sinon, je sais qu'on sort un peu du css, mais tu proposerai quoi en JS pour calculer la taille du bloc central? Tous les browsers proposent des menus de tailles et de positions différentes, ça risque pas d'être encore plus casse-tête?

  14. #14
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Non non, y a juste 3 lignes de JS à mettre :

    http://josselin.willette.free.fr/cod...xe/index2.html

  15. #15
    Membre averti Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Points : 316
    Points
    316
    Par défaut
    c'est de la bidouille php + js
    Je suis passé par l'url faut mieux enregistrer l'info dans une session...
    Il faut également retiré le echo de test

    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
    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
     
    <html>
    <head>
    <script type="text/javascript">
    function resolution() {
    document.location="<?php echo $_SERVER['PHP_SELF']; ?>?width="+screen.width+"&height="+screen.availHeight;
    }
    // fin -->
    </script>
    <?php
    if(!isset($_GET['width']) and !isset($_GET['height'])){
        echo '<body onload="resolution();">';
    }else{
    $hauteur= $_GET['height'] ;
    $max_height = $hauteur - 400 ; //Valeur à modifier
    echo $max_height ;
    /*echo '<body>';
    echo 'Votre résolution est ' . $_GET['width'] . ' * ' . $_GET['height'];*/
    }
     
     
    ?>
    <style type="text/css">
    <!--
    body {
    margin: 0;
    padding: 0;
    }
    #contener{
        width :600px ;
        background-color ; #F5F5F5 ;
    }
    #haut{
        background-color : #CC3300;
        height : 75px;
    }
    #bas{
        background-color : #CC3300;
        height : 75px;
    }
    #contenu{
    height:<?php echo $max_height ; ?>;
    background-color: #FFFFFF;
    overflow : auto ;
    }
    -->
    </style>
    </head>
    <body>
        <div id="contener">
            <div id="haut">
                <h1>Haut</h1>
            </div>
            <div id="contenu">
    TEXTE - TEXTE -TEXTE
    </div>
            <div id="bas">
                <h1>Bas</h1>
            </div>
        </div>
     
     
    </body>
    </html>
    Bon c'est de la bidouille

    Résultat : ICI
    Bon faut fignoler mais c'est peut-être une piste...

    Mon Blog : http://www.openwab.com
    Développement Web : Wordpress, HTML, CSS, PHP, jQuery
    Infrastructure : Virtualisation, Stockage, Déduplication

    There are 10 types of people in the world: those who understand binary, and those who don't

  16. #16
    Membre averti Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Points : 316
    Points
    316
    Par défaut
    Bon je retire mon post
    Je crois que ta solution est bien plus simple...

    Mon Blog : http://www.openwab.com
    Développement Web : Wordpress, HTML, CSS, PHP, jQuery
    Infrastructure : Virtualisation, Stockage, Déduplication

    There are 10 types of people in the world: those who understand binary, and those who don't

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ahhhh génial

    Un tout grand merci à vous deux!

    Vive Javascript!

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ah, j'ai crié victoire trop vite...

    Tout va bien pour ie6,ie7,FF.
    Par contre, Opéra fait des siennes. On dirait qu'il ne comprend pas le overflow, il vire automatiquement la barre de scroll. La fenetre s'agrandit pour englober tout le texte. Apparement, il ne laisse pas la fonction Javascript s'occuper de redimenssionner le block central...

    Bizarre comme comportement. Si vous ne savez pas ce que c'est, ce n'est pas trop trop grave. Les utilisateurs d'opéra sont moins d'1% sur le net... Mais bon :-)

  19. #19
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Je pense que tu dois faire un test sur le navigateur en JS.

    Opera n'aime pas :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    document.documentElement.clientHeight

    Tu dois le remplacer par :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.clientHeight
    uniquement pour Opera.

  20. #20
    Membre averti Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Points : 316
    Points
    316
    Par défaut
    overflow auto n'est à priori pas compris par opéra. (ou le contraire)

    test avec overflow scroll mais ça va ajouter la barre de défilement horizontale.

    Mon Blog : http://www.openwab.com
    Développement Web : Wordpress, HTML, CSS, PHP, jQuery
    Infrastructure : Virtualisation, Stockage, Déduplication

    There are 10 types of people in the world: those who understand binary, and those who don't

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/03/2010, 19h55
  2. Réponses: 1
    Dernier message: 11/11/2009, 11h55
  3. Colorer une ligne sur deux d'un tableau
    Par mogz29 dans le forum Langage
    Réponses: 3
    Dernier message: 01/11/2009, 21h18
  4. Colorer une ligne sur deux dans un tableau croisé
    Par markoBasa dans le forum iReport
    Réponses: 1
    Dernier message: 25/09/2008, 11h15
  5. Hauteur de tableau à 100%
    Par olivier4020 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 25/04/2006, 18h24

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