la hauteur de ma div ne s'adapte pas a son contenu sous firefox

la hauteur de ma div ne s'adapte pas a son contenu sous firefox - HTML/CSS - Programmation

Marsh Posté le 15-04-2008 à 10:46:26    

Bonjour,
 
voila j'ai deux calques imbriqués dans un calque contener et je je voudrais que la hauteur de celui-ci s'adapte en fonction de la taille de l'un ou l'autre calque.
9a marche tres bien sous IE mais pas sous firefox.
 
voici mon code:

Code :
  1. <html>
  2. <head>
  3. <style>
  4. .contenu {
  5. width:852px;
  6. background:green;
  7. }
  8. .calque1 {
  9. float:left;
  10. margin-top:40px;
  11. margin-left:17px;
  12. width:195px;
  13. background:red;
  14. }
  15. .calque2 {
  16. margin-top:80px;
  17. margin-left:275px;
  18. width:500px;
  19. background:yellow;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div class="contenu">
  25. <!--debut menu gauche -->
  26. <div class="calque1"><br>
  27.  <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
  28. </div>
  29. <div id="" class="calque2"><br>
  30.  <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
  31. </div>
  32. </div>
  33. </body>
  34. </html>


 
merci de votre aide


Message édité par attentio le 15-04-2008 à 10:51:41
Reply

Marsh Posté le 15-04-2008 à 10:46:26   

Reply

Marsh Posté le 15-04-2008 à 11:22:36    

calque1 est flotté (float:left), ce qui fait qu'il sort du flux et donc ".contenu" ne pourra contenir cet élément.
 
Fait un test simple, prend un div, mets 3 div en float:left à l'intérieur, et regarde la hauteur de ce div conteneur. Il fera 0px de haut.
C'est un comportement naturel en CSS
 
Si ça marche sous IE, c'est parce que tu as mis une largeur à ".contenu", et lorsqu'on met une largeur à un élément sous IE, on lui applique le "layout (haslayout)". Ce qui entraine automatiquement un contexte de formatage.  
Pour avoir ce contexte de formatage sous les autres navigateurs (firefox, opera, safari), il suffit de mettre un "overflow:hidden" sur .contenu et pour IE6 tu supprime cet overflow:hidden via un _overflow:visible, juste après..
 
Autre chose quand même, si tu mets un overflow:hidden, sur un élément, et que tu veux lui mettre aussi une hauteur minium sans que celle ci vienne casser les pied, utilise le min-height
 

Reply

Marsh Posté le 15-04-2008 à 23:55:59    

Vire les <br>
float tes 2 divs du même coté (left)
laisse en un avant de refermer ta div conteneur avec :
<br style="clear:both;" /> ou <br class="cancel" /> avec .cancel{clear:both;} dans ta css.


---------------
Studio CréeAll
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed