Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1389 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [css] mettre 2 div côte à côte sans sortir du flux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[css] mettre 2 div côte à côte sans sortir du flux

n°2070523
amufal
Posté le 17-04-2011 à 16:51:05  profilanswer
 

Bonjour,
Je poste ici car j'ai essayé beaucoup de choses et les exemples/tutos sont difficilement adaptables à ma situation, donc je désespère un peu...
Mon site comporte pas mal de div, ce qui m'a obligé à faire un div de contenu au centre de la page.
 
Au final je me retrouve avec un grand div "CentreD" qui est en position:relative et dedans je souhaite mettre deux div côté à côté (style classique |menu| |corps|).
Mais [:icon4] grand zut ET c'est la où est le problème : je veut que le grand div centreD s'agrandisse en fonction du contenu des deux autres div (menu et corps) et je ne peut donc pas utiliser de float ou autre astuces qui font sortir les div du flux et donc qui en cas de contenu trop grand dépasse du grand div "centreD"...
 
exemple si "corps" dispose d'un grand contenu et agrandi automatiquement "centreD"
.....................div centreD..............                
.| menu | |                                 |.
.|         | |                                 |.
.|         | |             div                |.
.|_____ | |           corps               |.
.             |                                 |.    
.             |                                 |.
...................................................
ou si "menu" comporte plus de contenu que "corps" :
.....................div centreD..............
.| menu | |                                 |.
.|         | |                                 |.
.|         | |             div                |.
.|         | |           corps               |.
.|         | |____________________ |.  
.|         |                                                                .
.............................................................................
En gros je veut ce schéma MAIS SANS l'utilisation de float ou autre techniques qui casse le flux et donc fait dépassé le contenu de centreD.
 
 
voila mon code si ça intéresse mais le problème est que même en imbriquant les div, la position:relative amène à la ligne...
 
fichier html :

Code :
  1. <div id="centreD">
  2.     <div id="menu">
  3.            <br/>rubrique1<br/>rubrique2<br/>rubrique3<br/>rubriqueN<br/>enfin menu latéral quoi...
  4.     </div>
  5.     <div id="corps">
  6.           blablablabla texte qui montre des choses zuperzoli...<br/>blablablabla texte qui montre des choses zuperzoli...<br/>blablablabla texte qui montre des choses zuperzoli...<br/>blablablabla texte qui montre des choses zuperzoli...<br/>........
  7.     </div>
  8. </div><!--centreD-->


 
fichier CSS :

Code :
  1. #centreD
  2. {
  3. position:relative;
  4. background-image: url("../images/BORDURE DROITE.jpg" );
  5. background-repeat: repeat-Y;
  6. background-position:right;
  7. }
  8. #menu
  9. {
  10. position:relative;
  11. width:100%;
  12. border:1px solid green;
  13. }
  14. #corps
  15. {
  16. width: 61%;
  17. margin-left:auto;
  18. margin-right:auto;
  19. margin-top:55px;
  20. margin-bottom:45px;
  21. min-height:300px;
  22. border:1px solid red;
  23. }


 
si vous essayez mon code avec un float ou autre, pensez à ajouter beaucoup de texte pour remplir menu ou corps (et voir si ils dépassent de centreD)
 
En remerciant d'avance ceux qui sont prêt à essayer ou à m'aider dans mon petit problème :p

mood
Publicité
Posté le 17-04-2011 à 16:51:05  profilanswer
 

n°2070823
vanish
Ce qui brûle, brûle !
Posté le 19-04-2011 à 10:57:29  profilanswer
 

Normalement on doit pvoir arranger ça avec display: inline-block, mais ça reste encore parfois compliqué pr obtenir le meme rendu sur tt les navigateurs.

 

Le bon vieux truc qui marche bien :

 

Tu met donc dans ton div principal tes deux colonnes en float,
et un troisieme bloc, tjrs dans ton div principale, avec la propriété clear: both;

 

Si tes deux colonnes et ce bloc sont de type bloc, ce troisieme bloc restera en dessous des deux en float, et comme il est dans le flux, ton conteneur s'agrandira en hauteur de façon a l'englober.

 
Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Document sans nom</title>
  6. <style type="text/css">
  7.     body{
  8.         background: #000;
  9.         margin: 0;
  10.         padding: 0;
  11.     }
  12.  
  13.     #conteneur{
  14.         background: #FFF;
  15.         width: 700px;
  16.        margin: 0 auto;
  17.    }
  18.  
  19.    #colonne1{
  20.        float: left;
  21.        width: 250px;
  22.        height: 400px;
  23.        background: #F00;
  24.    }
  25.  
  26.    #colonne2{
  27.        float: left;
  28.        width: 450px;
  29.        height: 200px;
  30.        background: #FF0;
  31.    }
  32.  
  33.    .clear{
  34.        clear: both;
  35.    }
  36. </style>
  37. </head>
  38. <body>
  39.    <div id="conteneur">
  40.         <div id="colonne1">colonne1</div>
  41.         <div id="colonne2">colonne2</div>
  42.        <div class="clear"></div>
  43.    </div>
  44. </body>
  45. </html>
 

FF et IE7/8 approved (et surement IE6 aussi je m'en occupe plus perso)
(et avec de jolies couleurs pr picouiller les yeux :D)

 

PS : et si tu a un footer en bas  de ton contenu pas besoin d'un div exprès pr le clear, le footer s'en charge.


Message édité par vanish le 19-04-2011 à 11:14:00
n°2070984
amufal
Posté le 19-04-2011 à 21:19:50  profilanswer
 

Merci, cela peut être très utile pour pas ce prendre la tête :p
 
j'avais plus ou moins résolu mon problème avec des "display : table-cell" qui reviennent à faire un tableau de divs (à englober dans un display: block ou table-row).
Mais j'ai eu un petit problème avec les tables-cell et IE8, pour aligner une image et du texte dans deux div collés donc je vais enfin pouvoir virer un <table> qui trainait ^^

n°2070986
vanish
Ce qui brûle, brûle !
Posté le 19-04-2011 à 21:22:41  profilanswer
 

:)
 
et pi si c'est pr faire des tableaux en div autant continuer sur les table de base lol ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [css] mettre 2 div côte à côte sans sortir du flux

 

Sujets relatifs
mettre le bouton "parcourir " dans une gridInterface graphique d'un agent de dialogue... Côté client
Mettre le résultat en hypertexteJe veux m'y mettre.. !
[html& css] 3 DIV côte-à-côte (dont 2 en taille fixe)?mettre plusieur chiffres dans un textbox (mot de passe)
Mettre résultat d'un fichier php externe dans une variableMettre à jour et ajouter avec phpMyadmin
Script import Flux RSS / XMLParser un flux XML en PHP pour récupérer une valeur
Plus de sujets relatifs à : [css] mettre 2 div côte à côte sans sortir du flux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR