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 :

Adaptation auto de la hauteur d'un div pour un menu


Sujet :

Dimensionnement en CSS

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut Adaptation auto de la hauteur d'un div pour un menu
    Bonjour à tous,

    Après avoir bien galérer à essayer de faire ce que je veux je vient vous voir

    J'aimerais simplement faire ce genre de mise en page avec des Div


    Mon problème vient des menus. Il faudrait que le "Menu Haut" est une hauteur fixe et que le "Menu Bas" prenne tout le reste de la hauteur quand le contenu prends plus de place en hauteur.

    Ça parait assez basique mais honnêtement je sèche là

    Merci d'avance

  2. #2
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    pour menu haut tu mets un height, pour définir la hauteur
    et tu mets un à l'ensemble de ta div qui regroupe les hauts et contenu

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Parfait merci beaucoup de ta part

    J'ai maintenant un autre souci de compatibilité.
    J'ai un affichage fixe de 1024px et je souhaite que cela soit centré dans le navigateur. J'ai donc fait ce code qui fonctionne parfaitement sur IE et FF mais le sous Chrome le centrage ne se fait plus et tout est à gauche.

    Par contre si sur la <table j'enlève border="0" ou cellpadding="0" ça fonctionne mais du coup j'ai une bordure ou un espacement que je ne veut pas.

    Je ne comprends plus rien, comment puis-je faire ?

    Voici mon 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
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    <!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" >
        <head>
            <title>Nouveau design</title>
     
            <style type="text/css" media="all">
                body {
                    font-family:Verdana;
                    margin: 0;
                    padding: 0;
                }
     
                form.noborder {
                    margin:0;
                    padding:0;
                }
     
     
     
                td#tdContenuSite {
                    width:1024px;
                    height: 960px;
                    vertical-align:top;
                }
     
                td#tdGauche {
    	            background-color:#DDDDDD;
                }
     
                td#tdDroite {
    	            background-color:#DDDDDD;
                }
     
     
     
                div#dvBandeau {
                    width:1024px;
                    height:171px;
                    background-image:url('images/Cadre/Old/Haut.jpg');
                    background-repeat:no-repeat; 
                }
     
                div#dvCentre {
                    overflow:hidden;
                }
     
                div#dvMenu {
                    float:left;
                    width:160px;
                    height:756px;
                    background-color:#FF6699;
                }
     
                div#dvMenu_haut {
                    width:160px;
                    height:756px;
                    background-image:url('images/Cadre/Old/Gauche.jpg');
                }
     
                div#dvMenu_bas {
                    width:160px;
                    height:100%;
                    background-image:url('images/Cadre/Old/GaucheBas.jpg');
                    background-repeat:repeat-y; 
                }
     
                div#dvContenu {
                    float:left;
                    width:864px;
                    height:756px;
                    background-image:url('images/Cadre/Old/BordureDroite.jpg');
                }
     
                div#dvPied {
                    clear:both;
                    width:1024px;
                    height:33px;
                    background-image:url('images/Cadre/Old/Bas.jpg');
                }
            </style>
        </head>
        <body>
            <table border="0" cellspacing="0" cellpadding="0" width="100%">
                <tr>
                    <td id="tdGauche"></td>
                    <td id="tdContenuSite">
                        <div id="dvBandeau"></div>
                        <div id="dvCentre">
    	                    <div id="dvMenu">
    		                    <div id="dvMenu_haut"></div>
    		                    <div id="dvMenu_bas"></div>
    	                    </div>
    	                    <div id="dvContenu">
    	                    </div>
    	                </div>
    	                <div id="dvPied"></div>
                    </td>
                    <td id="tdDroite"></td>
                </tr>
            </table>
        </body>
    </html>
    Merci d'avance

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu as certainement lu ce tuto : Div et CSS : une mise en page rapide et facile

    Alors pourquoi utiliser encore une <table> pour la mise en page ?!?

    Pour centrer horizontalement l'ensemble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <body>
    <div id="centrage">
    	<! [... tous les autres <div> du site ... ] -->
    </div>
    </body>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #centrage {
    	width:1020px;
    	margin:0 auto;
    }

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Ca fonctionne très bien si on a un "width" précis pour le "centrage".
    Mais j'aimerais mettre width:100%; pour pouvoir m'adapter à toutes les largeurs mais cela ne fonctionne pas.

    Comment je dois faire dans mon cas ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par aloisio11 Voir le message
    J'ai un affichage fixe de 1024px et je souhaite que cela soit centré dans le navigateur.
    J'ai répondu à cette problématique.

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Au temps pour moi ;-)

    Merci bien

  8. #8
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Après 1 jour de pinaille je reviens sur mon 1er problème.
    Je ne comprends pas pourquoi cela ne fonctionne pas Je ne sais plus quoi faire.

    Pourquoi sur ce design la div du menu (dvMenuListe) ne pousse pas le bas de page (dvPied) ?
    http://www.ultras-tifos.com/Test/Design.html

    Et inversement quand c'est le contenu (dvContenu) qui pousse vers le bas
    http://www.ultras-tifos.com/Test/Design2.html

    1000 merci d'avance

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ supprime du CSS les background contenant "GaucheBas.jpg" et "BordureDroite.jpg"
    2/ Fusionne les images "GaucheBas.jpg" et "BordureDroite.jpg" en une seule image (nommée par ex. "fonddvCentre.jpg")
    3/ Et applique-la sur : <div id="dvCentre"> en repeat-y;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #dvCentre { background:url('../images/Cadre/fonddvCentre.jpg') repeat-y;

  10. #10
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    1/ supprime du CSS les background contenant "GaucheBas.jpg" et "BordureDroite.jpg"
    2/ Fusionne les images "GaucheBas.jpg" et "BordureDroite.jpg" en une seule image (nommée par ex. "fonddvCentre.jpg")
    3/ Et applique-la sur : <div id="dvCentre"> en repeat-y;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #dvCentre { background:url('../images/Cadre/fonddvCentre.jpg') repeat-y;
    bonne option supplémentaire !
    mais s'il ne sait pas se servir de toshop...

  11. #11
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    1/ supprime du CSS les background contenant "GaucheBas.jpg" et "BordureDroite.jpg"
    2/ Fusionne les images "GaucheBas.jpg" et "BordureDroite.jpg" en une seule image (nommée par ex. "fonddvCentre.jpg")
    3/ Et applique-la sur : <div id="dvCentre"> en repeat-y;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #dvCentre { background:url('../images/Cadre/fonddvCentre.jpg') repeat-y;
    En effet c'est déjà plus propre ainsi mais cela ne résout toujours pas le problème.
    Sur cette page le menu de gauche est toujours coupé et ne pousse pas le reste vers le bas.
    Qu'est ce qui ne va pas dans mon CSS ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    "le menu de gauche est toujours coupé et ne pousse pas le reste vers le bas" ?
    Que veux-tu dire par là ?

    Quel doit-etre le comportement "normal" ?

  13. #13
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Le menu n'est pas affiché en entier, la catégorie "Tablettes" n'est pas la dernière catégorie il y en a 2-3 autres après qui ne sont pas affichées.
    D'ailleurs sur la bordure rouge, que j'ai mis pour visualisé le menu, on ne voit pas le bas. En fait le menu, au lieu de poussé le pied de page il se cache dessous.

  14. #14
    Invité
    Invité(e)
    Par défaut
    VU.

    sur #dvMenuGauche et #dvMenu_haut :
    remplacer height:756px; par min-height:756px;
    Dernière modification par Invité ; 07/05/2012 à 15h00.

  15. #15
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Points : 71
    Points
    71
    Par défaut
    Merveilleux !!!
    Merci beaucoup de m'avoir aidé

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

Discussions similaires

  1. Comment adapter la hauteur d'une div enfant à une div parent.
    Par infovect dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 06/03/2015, 08h29
  2. Adapter la hauteur d'une div à son contenu
    Par toufou dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/10/2009, 14h42
  3. Adapter la hauteur de mon div à la hauteur du texte qu'il contient
    Par mfofana dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 22/08/2008, 10h05
  4. Réponses: 5
    Dernier message: 16/01/2008, 13h13
  5. Recuperer la hauteur d'une DIV
    Par rol666 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/08/2005, 14h01

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