Div central extensible

Div central extensible - HTML/CSS - Programmation

Marsh Posté le 23-07-2009 à 10:36:14    

Bonjour, je ne trouve pas la solution à ce que je souhaite réaliser.
Je voudrai que mon site prenne toute la largeur de la page.
Sur mon site, j'ai un menu en colonne à gauche et un menu en colonne à droite, de 200px chacun.
Je voudrai que la div central s'étende en fonction de la place restant entre ces 2 menus.
Voici mon code.
 

Code :
  1. <div id="Partie2">
  2. <div id="Section4">Colonne gauche
  3. </div>
  4. <div id="Section5">Contenu
  5. </div>
  6. <div id="Section6">Colonne droite
  7. </div>
  8. </div>


 

Code :
  1. #Partie2{ /* main */
  2.    float: left;
  3.    border: 2px dotted yellow;
  4.    width: 100%;
  5.    }
  6. #Section4{ /* Colonne gauche */
  7.    float: left;
  8. width: 100px;
  9.    margin: 0 0 1.2em;
  10.    border: 1px dashed silver; }
  11. #Section5{ /* Contenu */
  12. padding: 10px 20px;
  13.     border: 1px dashed silver;
  14. width: 100%;
  15. float: left;
  16. }
  17. #Section6{ /* Colonne droite */
  18. float: right;
  19. width: 100px;
  20.    margin: 0 0 1.1em;
  21.    background-color: #eee; border: 1px dashed silver; }


 
Merci d'avance pour votre aide :)


Message édité par laurent0 le 23-07-2009 à 10:36:43
Reply

Marsh Posté le 23-07-2009 à 10:36:14   

Reply

Marsh Posté le 23-07-2009 à 11:41:27    

Hello,
 
Retire le 'width: 100%;' de #Section5.
 
C'est à cause du float que ca merde.
Actuellement tu lui demande de prendre toute la largeur du conteneur.
Alors évidement les barres de gauche et de droite sont obligé de passer à la ligne.  ;)


Message édité par Pascal le nain le 23-07-2009 à 11:52:46
Reply

Marsh Posté le 23-07-2009 à 11:56:34    

Merci pour ton aide!  
 
J'ai modifié, comme tu m'as dit mais lorsque le contenu de la section central est trop large, le menu de droite est décalé en dessous.  
Y a t-il une fonction css pour qu'il se mette toujours à droite du contenu et que le contenu prenne l'espace libre entre les 2 menus en fonction de la largeur de l'écran?
Et je n'ai pas trop envie d'utilisé de position absolue...
 
Merci d'avance


Message édité par laurent0 le 23-07-2009 à 11:56:49
Reply

Marsh Posté le 23-07-2009 à 12:01:38    

Je n'ai pas de solution a te proposer.
La plupart des sites n'ont qu'une barre a gauche ou a droite, ou pas de barre du tout.
Ceux qui en ont des deux cotés utilisent un tableau, mais c'est un peu crade (exemple : analyse la mise en page de http://www.phpdebutant.org/)


Message édité par Pascal le nain le 23-07-2009 à 12:02:06
Reply

Marsh Posté le 23-07-2009 à 18:22:58    

contexte de formatage power

Code :
  1. <div id="Partie2">
  2. <div id="Section4">Colonne gauche
  3. </div>
  4. <div id="Section6">Colonne droite
  5. </div>
  6. <div id="Section5">Contenu
  7.  tu verras je suis bien centré sans dépasser et je m'etends sur toute la page :D
  8. </div>
  9. </div>
  10. <style>
  11. #Partie2 {overflow:hidden; zoom:1;}
  12. #Section4 {float:left; width:100px; }
  13. #Section6 {float:right; width:100px;}
  14. #Section5 {overflow:hidden; zoom:1;background:blue;}
  15. </style>
 
Pascal le nain a écrit :

Je n'ai pas de solution a te proposer.
La plupart des sites n'ont qu'une barre a gauche ou a droite, ou pas de barre du tout.
Ceux qui en ont des deux cotés utilisent un tableau, mais c'est un peu crade (exemple : analyse la mise en page de http://www.phpdebutant.org/)


le code HTML de ce site est juste une horreur à ne pas imiter


Message édité par gatsu35 le 23-07-2009 à 18:23:58

---------------
Blablaté par Harko
Reply

Marsh Posté le 24-07-2009 à 10:39:45    

héhé joli ;)
J'avais pas pensé à jouer sur l'overflow.

Reply

Marsh Posté le 24-07-2009 à 11:20:16    

Pascal le nain a écrit :

héhé joli ;)
J'avais pas pensé à jouer sur l'overflow.


jouer sur le contexte de formatage :o, c'est l'overflow qui entraine le contexte de formatage


---------------
Blablaté par Harko
Reply

Marsh Posté le 24-07-2009 à 11:59:26    

je n'ai qu'une chose à dire magnifique. je désespérais et n'avais aucune envie de tout faire avec des tableaux :)
par contre encore une petite question, que signifie zoom:1???
 
Un grand merci à vous

Reply

Marsh Posté le 24-07-2009 à 12:18:21    

c'est une propriété propre à IE6 et IE7 qui permet d'activer le haslayout sur les éléments HTML, et lorsqu'on active le haslayout, le contexte de formatage s'applique sur ces éléments.


---------------
Blablaté par Harko
Reply

Marsh Posté le 24-07-2009 à 14:55:19    

Je me suis réjouis un peu trop vite... sous firefox, rien ne s'affiche...?

Reply

Marsh Posté le 24-07-2009 à 14:55:19   

Reply

Marsh Posté le 24-07-2009 à 15:12:39    

montre tout ton code stp, code HTML et CSS, merci


---------------
Blablaté par Harko
Reply

Marsh Posté le 24-07-2009 à 15:16:23    

Voici, htlm et css
 

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. <link href="css/template.css" rel="stylesheet" type="text/css" />
  5. </head>
  6. <body>
  7. <div id="Partie1">
  8. <div id="top">top
  9. </div>
  10. <div id="breadcrumbs">breadcrumbs</div>
  11. </div>
  12. <div id="Partie2">
  13. <div id="Section1">Colonne gauche </div>
  14. <div id="Section3">Colonne droite</div>
  15. <div id="Section2">Contenu</div>
  16. </div>
  17. <div id="Partie3">
  18. <div id="footer">footer</div>
  19. </div>
  20. </body></html>


 

Code :
  1. body{
  2.    font-size: 12px;
  3.    font-family: Helvetica,Arial,sans-serif;
  4.    margin: 0 auto;
  5. }
  6. #Partie1{ /* header */
  7.    float: left;
  8.    width: 100%;
  9. }
  10. #top{ /* En-tête */
  11.    float: left;
  12.    width: 100%;
  13.    height:120px; 
  14.    background-image:url(../images/head.jpg);
  15.    background-repeat:no-repeat;
  16.    background-position:left ;
  17.    margin: 0;
  18. }
  19. #breadcrumbs{ /* Breadcrumbs */
  20. width: 100%;
  21. overflow: hidden;
  22. height:25px;
  23. font-family: Verdana;
  24. font-size: 12px;
  25. background-color:#F19A80;
  26. font-weight: bold;
  27. text-align: center;
  28. vertical-align: center;
  29. }
  30. #Partie2{ /* Partie principale */
  31. overflow:hidden;
  32. zoom:1;
  33.  
  34.    }
  35. #Section1{ /* Colonne gauche */
  36.    float: left;
  37. width: 179px;
  38. background-color:#6D4F4B;
  39. height:400px; 
  40.     background-image:url(../images/background_menu_left.gif);
  41.     background-repeat:no-repeat;
  42.     background-position:left top;
  43. }
  44. #Section2{ /* Contenu */
  45. overflow:hidden;
  46. zoom:1;
  47.     margin: 0 auto;
  48. background-image:url(../images/background_centre.gif);
  49. background-position:left top;
  50. height:400px;
  51. border-left: solid 1px #F19A80;
  52. border-right: solid 1px #F19A80;
  53. }
  54. #Section3{ /* Colonne droite */
  55. float: right;
  56. width: 180px;
  57. background-color:#6D4F4B;
  58. vertical-align: top;
  59. height:400px;
  60. }
  61. #Partie3{ /* Pied */
  62.    clear:both;
  63.    background-color: #red;
  64. }
  65. #footer{ /* Pied */
  66.    background-color: #red;
  67.    }
  68.  
  69. img {
  70. border: none
  71. }


 
Un grand merci pour votre aide!

Reply

Marsh Posté le 24-07-2009 à 15:51:05    

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. <style type="text/css" media="screen">
  5. body{
  6.    font-size: 12px;
  7.    font-family: Helvetica,Arial,sans-serif;
  8.    margin: 0 auto;
  9. }
  10. #Partie1{ /* header */
  11. }
  12. #top{ /* En-tête */
  13.    height:120px;
  14.    background-image:url(../images/head.jpg);
  15.    background-repeat:no-repeat;
  16.    background-position:left ;
  17.    margin: 0;
  18. }
  19. #breadcrumbs{ /* Breadcrumbs */
  20.  overflow: hidden;
  21.  height:25px;
  22.  font-family: Verdana;
  23.  font-size: 12px;
  24.  background-color:#F19A80;
  25.  font-weight: bold;
  26.  text-align: center;
  27.  vertical-align: center;
  28. }
  29. #Partie2{ /* Partie principale */
  30.  overflow:hidden;
  31.  zoom:1;
  32. }
  33. #Section1{ /* Colonne gauche */
  34.     float: left;
  35.  width: 179px;
  36.  background-color:#6D4F4B;
  37.  height:400px;
  38.     background-image:url(../images/background_menu_left.gif);
  39.     background-repeat:no-repeat;
  40.     background-position:left top;
  41. }
  42. #Section2{ /* Contenu */
  43.  overflow:hidden;
  44.  zoom:1;
  45.     margin: 0 auto;
  46.  background-image:url(../images/background_centre.gif);
  47.  background-position:left top;
  48.  height:400px;
  49.  border-left: solid 1px #F19A80;
  50.  border-right: solid 1px #F19A80;
  51. }
  52. #Section3{ /* Colonne droite */
  53.  float: right;
  54.  width: 180px;
  55.  background-color:#6D4F4B;
  56.  vertical-align: top;
  57.  height:400px;
  58. }
  59. #Partie3{ /* Pied */
  60.    clear:both;
  61.    background-color: #red;
  62. }
  63. #footer{ /* Pied */
  64.    background-color: #red;
  65.    }
  66. img {
  67. border: none
  68. }
  69. </style>
  70. </head>
  71. <body>
  72. <div id="Partie1">
  73. <div id="top">top</div>
  74. <div id="breadcrumbs">breadcrumbs</div>
  75. </div>
  76. <div id="Partie2">
  77. <div id="Section1">Colonne gauche </div>
  78. <div id="Section3">Colonne droite</div>
  79. <div id="Section2">Contenu</div>
  80. </div>
  81. <div id="Partie3">
  82. <div id="footer">footer</div>
  83. </div>
  84. </body>
  85. </html>
 

je ne vois vraiment pas pourquoi tu fous sur le #top un float:left; width:100%; ça sert à rien à part créer des problèmes


Message édité par gatsu35 le 24-07-2009 à 15:51:52

---------------
Blablaté par Harko
Reply

Marsh Posté le 27-07-2009 à 09:52:52    

merci :)

Reply

Sujets relatifs:

Leave a Replay

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