overflow auto et IE6 : débordement de div

overflow auto et IE6 : débordement de div - HTML/CSS - Programmation

Marsh Posté le 22-07-2008 à 17:50:01    

Bonjour,
 
 je fais un site dont l'architecture est la suivante :
 - un cadre en haut avec une hauteur fixe et une largeur de 100%
 - un cadre à gauche (sur lequel est positionné un menu en flash) avec une hauteur de 100% et une largeur fixe
 - un cadre central , avec un scroll "auto",(qui sera alimenté à partir du menu flash et d'un code ajax) de largeur égale à 100% moins la largeur du cadre gauche, et une hauteur égale à 100% moins la hauteur du cadre en haut
 
 La contrainte est que le site doit être compatible quelque soit la résolution et pour firefox, IE6 et IE7.
 Or tout fonctionne sous firefox et IE7 mais il y a un décalage sous IE6.  
 En fait, lorsque la page chargée dans le cadre central fait apparaître un scroll dans firefox et IE7, IE6 ne le gère pas de la même façon, il utilise le scroll du navigateur et donc la page "déborde" du cadre.
 
 Voici le code HTML :

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. <title>-TITRE-</title>
  5. <link rel="shortcut icon" href="favicon.ico" />
  6. <link href="style_abso.css" rel="stylesheet" type="text/css" />
  7. <script type="text/javascript" language="javascript">AC_FL_RunContent = 0;</script>
  8. <script src="AC_RunActiveContent.js" type="text/javascript" language="javascript"></script>
  9. <script src="code_ajax.js" type="text/javascript" language="javascript"></script>
  10. </head>
  11. <body>
  12. <!-- début cadre logo -->
  13. <div id="cadre_logo"><img src="images/logo.gif" alt="" /></div>
  14. <!-- fin cadre logo -->
  15. <!-- début cadre haut -->
  16. <div id="cadre_haut"><img class="img_haut" src="images/barre_bleue.gif" alt="" /></div>
  17. <!-- fin cadre haut -->
  18. <!-- début cadre gauche -->
  19. <div id="cadre_gauche"></div>
  20. <!-- fin cadre gauche -->
  21. <!-- début menu gauche -->
  22. <div id="menu_flash"><script src="menu.js" type="text/javascript" language="javascript"></script></div>
  23. <!-- fin menu gauche -->
  24. <!-- début cadre centre rempli à partir du menu flash et du code ajax-->
  25. <div id="cadre_centre"></div>
  26. <!-- fin cadre centre -->
  27. </body>
  28. </html>


 
et le code CSS :
 

Code :
  1. html, body {
  2.         height:100%;
  3.         width:100%;
  4.         min-width:600px;
  5.         background-color:#000000;
  6.         font-family:Arial, Helvetica, sans-serif;
  7.         color:#FFFFFF;
  8.         font-size:14px;
  9.         padding:0px;
  10.         margin:0px;
  11. }
  12. #pageindex {
  13.         position:absolute;
  14.         left:50%;
  15.         top:50%;
  16.         width:650px;
  17.         height:450px;
  18.         margin-top:-225px; /* moitié de la hauteur */
  19.         margin-left:-325px; /* moitié de la largeur */
  20. }
  21. .img_index {
  22.         border:none;
  23. }
  24. #cadre_gauche {
  25.         position:absolute;
  26.         background-color:#333333;
  27.         left:0px;
  28.         top:0px;
  29.         width:120px;
  30.         height:100%;
  31.         z-index:1;
  32. }
  33. #cadre_logo {
  34.         position:absolute;
  35.         left:0px;
  36.         top:0px;
  37.         width:335px;
  38.         height:120px;
  39.         z-index:3;
  40. }
  41. #cadre_haut {
  42.         position:absolute;
  43.         left:0px;
  44.         top:0px;
  45.         width:100%;
  46.         height:50px;
  47.         z-index:2;
  48. }
  49. .img_haut {
  50.         height:120px;
  51.         width:100%;
  52. }
  53. #menu_flash {
  54.         position:absolute;
  55.         left:3px;
  56.         top:130px;
  57.         width:114px;
  58.         height:265px;
  59.         z-index:3;
  60. }
  61. #cadre_centre {
  62.         position:absolute;
  63.         background-color:#000000;
  64.         margin-left:130px;
  65.         margin-top:130px;
  66.         margin-right:10px;
  67.         margin-bottom:10px;
  68.         z-index:4;
  69.         overflow:auto;
  70. }
  71. .style_titre {
  72.         color:#333333;
  73.         font-size:16px;
  74.         font-weight:bold;
  75. }


 
J'ai effectué pas mal de recherche mais je n'arrive pas à résoudre ce problème.
 D'ailleurs, ce que je souhaite ressemble à un modèle fourni sur alsacreations http://css.alsacreations.com/modeles/modele12.htm , mais avec une hauteur qui varie en fonction de la résolution.
 
 J'ai également essayé de générer dynamiquement en fonction de la taille de la fenêtre active, un CSS différent pour IE6. Cela fonctionne, mais uniquement si l'utilisateur ne redimensionne pas la fenêtre. Auquel cas, le cadre central ne s'adapte pas.
 
 Y a t-il une solution?
 
 Merci.

Reply

Marsh Posté le 22-07-2008 à 17:50:01   

Reply

Marsh Posté le 22-07-2008 à 23:22:17    

Si tu mets une hauteur à 100% à body (au passage pourquoi une largeur à 100% ?), IE6 ne va pas comprendre et va continuer à augmenter la hauteur de body tant que tu restes sur la page (ça se voit à la barre de scroll qui diminue).
Pourquoi tout positionner en absolu ?

Reply

Marsh Posté le 23-07-2008 à 14:28:38    

Bonjour gebruik,
 
en fait si j'enlève height:100%; dans le body, le cadre à gauche (celui du menu) disparaît sous IE6 ! J'avais trouvé cette solution sur le net...
J'ai tout positionné en absolu parce que sinon les cadres étaient positionnés n'importe comment  :??:  
Je débute en CSS, alors je m'y prend peut-être mal...
Comment penses-tu que je devrais positionner mes cadres?
 
Merci.

Reply

Marsh Posté le 24-07-2008 à 04:45:07    

dede2a a écrit :

Bonjour gebruik,
 
en fait si j'enlève height:100%; dans le body, le cadre à gauche (celui du menu) disparaît sous IE6 ! J'avais trouvé cette solution sur le net...


 
pour eviter le probleme que gebruik souligne remplace
height:100%;
par  
zoom:1;
 
sinon le positionnement en absolute c est vraiment degueu essaie plutot des float


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 24-07-2008 à 17:17:57    

Merci mIRROR pour ton aide, mais ça ne fonctionne pas chez moi.
 
Mais ce n'est pas grave, "j'ai" trouvé une autre solution (merci C_S_S  ;) ). Si ça interresse quelqu'un qu'il me fasse signe.

Reply

Sujets relatifs:

Leave a Replay

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