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 :

2 floats dans une div, problème d'encapsulation


Sujet :

CSS

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut 2 floats dans une div, problème d'encapsulation
    bonjour,

    Je voudrais régler un détail qui me pose problème, j'ai un corps de page dans lequel j'ai 2 partie, une à gauche et une à droite (deux float), le problème est que ma div corps ne "s'agrandit" pas en fonction de mon float le plus haut (ils ont une hauteur variable selon ce que rentre l'utilisateur).

    en fait ma div "corps" fait 0 de hauteur, comment faire en sorte qu'elle soit de la hauteur de la plus grande div qu'elle contient (je pensais que ca se ferrait automatiquement mais apparemment les div ne "détectent" pas les float automatiquement).

    Voici les div concernés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #corps
    {
    	width: 86.5%;
    	margin-left:12.5%;
       margin-bottom: 20px;
      padding: 5px;
       color: #B3B3B3;
       background-color: black;
       background-repeat: repeat-x;
       border: 1px solid rgb(64,0,0);
    }
    Dans ce corps il y a:

    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
    #corps_left
    {
    width: 41.2%;
       padding: 5px;
       color: #B3B3B3;
    border: 5px inset red;
    margin-bottom: 10px;
    float: left;
    background-color: black;
    }
     
    #corps_right
    {
    width: 43%;
       padding: 5px;
       color: #B3B3B3;
    border: 5px inset blue;
    float: right;
    right:15px;
    background-color: black;
    }
    Et le html est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div id="corps">
         <div id="corps_left">
         </div>
         <div id="corps_right">
         </div>
    </div>
    En espérant avoir été explicite ! Merci bien.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 207
    Points : 344
    Points
    344
    Par défaut
    En effet le float empêche au conteneur parent de s'agrandir dynamiquement.

    2 solutions :
    - javascript : agrandir #corps selon #corps_left et #corps_right
    - eviter float et passer par un table avec 2 colonnes (je suppose que c'est ce que tu voulais éviter)
    Sébastien Courjean
    Développeur Web
    scourjean@cyres.fr
    http://www.cyres.fr/

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Oui on m'a déconseillé de structurer mes pages avec des tableaux, je vais voir si je trouve comment faire avec Javascript, j'y avais pas pensé.

    Merci pour ta réponse !

  4. #4
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Hello,

    Pour que ton conteneur prenne en compte le contenu des flottantsr, la solution actuelle la plus simple est de lui appliquer une propriété établissant un nouveau contexte de formattage.:
    Floats, absolutely positioned elements, inline-blocks, table-cells, table-captions, and elements with 'overflow' other than 'visible' (except when that value has been propagated to the viewport) establish new block formatting contexts.
    Dans la plus part de cas, un overlow:hidden ou auto fait très bien l'affaire.
    D'autres solutions envisageables dans la faq
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et si c'est le cas

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

Discussions similaires

  1. Floats dans une DIV Relative : hauteur
    Par vinze60 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 06/12/2010, 15h50
  2. Problème de centrage verticale dans une div
    Par stefsas dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 13/05/2010, 19h15
  3. Div dans une div problème avec firefox
    Par mathias59 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 11/12/2009, 15h52
  4. problème de placement dans une div
    Par dom_dev dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 04/07/2007, 11h13
  5. Formater un float dans une requete
    Par Cedced dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/11/2004, 16h48

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