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 :

hauteur de div automatique en fonction de l'espace libre


Sujet :

Dimensionnement en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut hauteur de div automatique en fonction de l'espace libre
    bonjour,

    J'ai un conteneur de hauteur variable nommé #principale
    dans celui ci j'ai a gauche un menu nommé #menu et a droite une div nommée #contenu qui contient des formulaires.

    sur la div #menu j'ai un border-right : 1px solid #555; qui permet de faire une jolie séparation.

    Probleme : Lorsque ma div #contenu est supérieur en hauteur a la div #menu, mon border-right ne descend pas correctement jusqu'à mon pieds de page. Car la hauteur de #menu est fixée en fonction de ce quelle contient et non pas en fonction de l'espace libre disponible par #principale

    web developper m'indique la hierarchie suivante :
    html > body > div#conteneur > div#principale > div#menu

    J'ai essayé la propriété : height : inherit; sur la div #menu afin qu'elle ai la meme hauteur que son conteneur mais çà ne change rien.

    Avez vous une astuce plz ?? D'avance, merci.

    EDIT : J'ai bien une astuce c'est de mettre une image en background d'un gif transparent de 1px de haut et de faire un repeat-y pour dessiner la bordure sur ma div #principale mais çà serait clairement du bricolage et ne reglerais pas ce soucis de CSS, d'autant plus que ce n'est pas la 1ere fois que je suis confronté a cette situation.

  2. #2
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Citation Envoyé par boutmos Voir le message
    EDIT : J'ai bien une astuce c'est de mettre une image en background d'un gif transparent de 1px de haut et de faire un repeat-y pour dessiner la bordure sur ma div #principale mais çà serait clairement du bricolage et ne reglerais pas ce soucis de CSS, d'autant plus que ce n'est pas la 1ere fois que je suis confronté a cette situation.
    Pourquoi du bricolage ? à part le background je ne vois pas d'autres solutions pour cette situation !

  3. #3
    Membre éclairé Avatar de Raphael_Lemaire
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Par défaut
    Salut Boutmos.

    Est-ce bien quelque chose comme cela que tu aimerais avoir ? (fonctionne sous FF3 et IE7) :

    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
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <!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>
            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
            <title>Truc</title>
    		<style type="text/css">
    		body {
    			width: 100%;
    			height: 100%;
    			margin: 0;
    			padding: 0;
    		}
     
    		#principale {
    			width: 100%;
    			height: 100%;
    		}
     
    		#menu {
    			border-right: 2px solid #DDDDFF;
    			width:20em;
    			margin-right: 1em;
    			height : 100%;
    			position:absolute;
    			left:0;
    			top:0;
    		}
    		</style>
        </head>
        <body>
            <div id="principale"> 
    			<div id="menu">
    			test
    			</div>
    			<div id="contenu">
    			test
    			</div>
    		</div>
        </body>
    </html>

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut
    lol c'est exactement çà, je suis effectivement entrain de regarder les solutions apportées et pour le moment çà avance :

    j'ai mis un height: 100% sur chaque conteneur parents. Ca marche sur tous les navigateurs sauf que sur IE j'ai une marge mais ma bordure descend anormalement ; je continue mes tests. Merci

  5. #5
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Citation Envoyé par Raphael_Lemaire Voir le message
    Salut Boutmos.
    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
     
    		#principale {
    			width: 100%;
    			height: 100%;
    		}
     
    		#menu {
    			border-right: 2px solid #DDDDFF;
    			width:20em;
    			margin-right: 1em;
    			height : 100%;
    			position:absolute;
    			left:0;
    			top:0;
    		}
    Attention au positionnement absolute, la div menu n'est pas positionné par rapport a son conteneur parents "principale" ...

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Par défaut
    çà ne marche pas ce code ,

    si le contenu de #principale est faible, on se retrouve avec #principale.height = #menu.height, j'ai mon menu qui se retrouve coupé.

    J'etais arrivé au même resultat =(

  7. #7
    Membre éclairé Avatar de Raphael_Lemaire
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Par défaut
    Citation Envoyé par Macmillenium Voir le message
    Attention au positionnement absolute, la div menu n'est pas positionné par rapport a son conteneur parents "principale" ...
    C'est vrai, il manque le position : relative sur le parent.

  8. #8
    Membre éclairé Avatar de Raphael_Lemaire
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Par défaut
    Citation Envoyé par Raphael_Lemaire Voir le message
    C'est vrai, il manque le position : relative sur le parent.
    Euh je disais nimps là.

    Ton problème c'est que si ton contenu dépasse la hauteur du document, ta barre à gauche (qui fait la taille du document avec le height à 100% d'alsa) ne suit pas et reste à la taille du document, donc quand tu scrolle, ça ne vas pas.

    J'ai cherché dix minutes et j'avoue ne pas avoir trouvé de solution pour le moment.

    Enfin si ça ça marche :

    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
     
    html, body, #principale {
    	margin: 0;
    	padding: 0;
    }
    #principale {
    	display: table-row;
    }
     
    #menu {
    	border-right: 2px solid #003;
    	width:20%;
    	background-color: #DDF;
    	display: table-cell;
    }
     
    #contenu {
    	width: 78%;
    	display: table-cell;
    	padding-left: 1em;
    }
    (voir la pièce jointe pour l'exemple complet)

    Mais, même si je n'ai pas IE sur mon mac là, je peux te dire que ça ne marchera pas dessus ...
    Fichiers attachés Fichiers attachés

  9. #9
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Citation Envoyé par Raphael_Lemaire Voir le message
    C'est vrai, il manque le position : relative sur le parent.
    Il sera positionné oui mais ne dépend pas de la largeur/hauteur de son enfant retiré du flux.

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

Discussions similaires

  1. Hauteur Div parent en fonction hauteur Div enfant
    Par lolo34140 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/01/2013, 21h52
  2. hauteur de div automatique
    Par aFauchere dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 18/01/2012, 12h24
  3. Hauteur de div automatique selon la copie d'écran proposée
    Par nilsb13 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 22/08/2011, 15h25
  4. Hauteur des div enfants en fonction des parents
    Par Boris56 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 15/12/2010, 18h44
  5. hauteur <div> automatique par rapport à un autre <div>
    Par arnaud_verlaine dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 08/05/2008, 19h38

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