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 :

height d'un div


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Par défaut height d'un div
    bonjour à tous
    voici mon soucis

    j'ai ce code html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <div id="contenu">
     
       <div id="menu">
     
       </div>
     
       <div id="centre">
     
       </div>
     
    </div>
    et le 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
    #contenu{
    	background-image:url(../img/bg.png);
    	width:860px;
    	margin-left:auto;
    	margin-right:auto;
    }
     
    #menu{
    	width:200px;
    	float:left;
    }
     
    #centre{
    	width:660px;
    	float:left;
    }
    en faite j'ai une image en background dans le <div id="contenu">
    mais le problème c'est que si je ne défini pas de height dans le css je ne vois pas ce background même si il y a du contenu dans <div id="menu"> et <div id="centre">
    je fais donc appel à vous pour m'éclairer dans ce problème

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    un div prend les dimensions de son contenu. Comme tes div sont vides, leur hauteur est nulle

    Maintenant comme #menu et #centre sont en float, ils sortent du flux normal de la page, donc même s'ils sont imbriqués dans ton #contenu, ils sortent du conteneur (ajoute une bordure à ton conteneur pour le vérifier). Pour contrer cela deux possibilités :
    - mettre le conteneur en float ;
    - ou rétablir le flux après ton div #centre :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <div id="contenu">
     
       <div id="menu">
     
       </div>
     
       <div id="centre">
     
       </div>
     <hr style="clear:both; visibility:hidden" />
    </div>

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Effectivement, si ta div n'a pas de contenu, ses dimensions seront égales à 0, donc pas de background-image.

    Mais si "menu" et "centre" ont du contenu, ils seront affichés au-dessus de "contenu".

    Essaye d'attribuer à "menu" et "centre" un background-color: transparent et ça devrait (presque) marcher... car IE6 ne prend pas en compte la 'couleur' transparent
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Pour info, le conteneur en float que conseil Auteur repousse ce comportement
    dans la plupart des cas en impliquant d'ajouter un élément de dégagement
    supplémentaire (hr clear) mais cette solution peut être intéressant...

    Dernière solution ayant l'avantage de ne pas faire sortir le bloc du flux normal vis
    à vis de son conteneur: overflow:hidden sur le conteneur, sachant que cette solution
    requière un peu plus de vigilance sur le visibilité des contenus en cas d'agrandissement des polices.

Discussions similaires

  1. Height 100% pour DIV
    Par iGeek dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 06/09/2010, 22h39
  2. Que faire pour que le height de mon div s'allonge avec son contenu?
    Par Alexandrebox dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 10/02/2010, 17h25
  3. div height 20% et div intérieur à 20px du haut et du bas
    Par Invité dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 21/12/2008, 20h40
  4. height dans un div en pourcentage
    Par Sniper37 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 10/03/2008, 15h19
  5. Connaitre la height d'une div
    Par licorne dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/09/2005, 16h30

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