Colonnes de même hauteur avec bordures : possible sans tableau ?

Colonnes de même hauteur avec bordures : possible sans tableau ? - HTML/CSS - Programmation

Marsh Posté le 15-10-2007 à 19:15:10    

Bonjour,
 
J'ai fait un design suivant basé sur des tableaux, et j'aurais voulu n'utiliser que des DIV. Seulement ça fait des heures que je galère  :sweat:  
 
Voici le code qui utilise des tableaux (et je veux avoir les bordures dans mon design) :

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" lang="fr" xml:lang="fr"
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  5. <style>
  6. <!--
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. text-align: center;
  11. }
  12. table#container {
  13. width: 750px;
  14.   border-collapse: collapse;
  15. }
  16. #topzone {
  17.   border: 1px solid black;
  18. }
  19. #logo {
  20.   border: 1px solid black;
  21.   margin-top: 5px;
  22.   margin-bottom: 20px;
  23.   padding-top: 10px;
  24.   padding-bottom: 10px;
  25. }
  26. table#middlezone {
  27.   width: 100%;
  28.   border-collapse: collapse;
  29. }
  30. table#middlezone td {
  31.   vertical-align: top;
  32. }
  33. table#middlezone .middlezone_spacer {
  34.   width: 5px;
  35. }
  36. #leftzone {
  37.   border: 1px solid black;
  38. }
  39. #centralzone {
  40. width: 100%;
  41.   border: 1px solid black;
  42. padding: 2px;
  43. }
  44. #rightzone {
  45.   border: 1px solid black;
  46. }
  47. #footer {
  48.   border: 1px solid black;
  49. margin-top: 5px;
  50. }
  51. -->
  52. </style>
  53. </head>
  54. <body>
  55. <table id="container">
  56. <tr>
  57.     <td>
  58.      <div id="topzone">
  59.         HAUT DE PAGE
  60.      </div>
  61.     </td>
  62.   </tr>
  63. <tr>
  64.     <td>
  65.       <div id="logo">
  66.         IMAGE LOGO
  67.       </div>
  68.   </td>
  69.   </tr>
  70. <tr>
  71.     <td>
  72.       <table id="middlezone">
  73.         <tr>
  74.        <td id="leftzone">
  75.             <p>COLONNE GAUCHE</p>
  76.           </td>
  77.    
  78.        <td class="middlezone_spacer">&nbsp;</td>
  79.    
  80.        <td id="centralzone">
  81.              <p>COLONNE CENTRE</p>
  82.              <p>COLONNE CENTRE</p>
  83.              <p>COLONNE CENTRE</p>
  84.           </td>
  85.    
  86.        <td class="middlezone_spacer">&nbsp;</td>
  87.    
  88.        <td id="rightzone">
  89.              <p>COLONNE DROITE</p>
  90.              <p>COLONNE DROITE</p>
  91.           </td>
  92.         </tr>
  93.       </table>
  94.   </td>
  95.  </tr>
  96. <tr>
  97.     <td>
  98.      <div id="footer" >
  99.       BAS DE PAGE
  100.      </div>
  101.   </td>
  102.   </tr>
  103. </table>
  104. </body>
  105. </html>


 
Voici ma trame de base sans tableau :

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" lang="fr" xml:lang="fr"
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  5. <style>
  6. <!--
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. text-align: center;
  11. }
  12. #container {
  13. width: 750px;
  14. padding: 2px;
  15. }
  16. #topzone {
  17.   width: 100%;
  18.   border: 1px solid black;
  19. }
  20. #logo {
  21.   width: 100%;
  22.   border: 1px solid black;
  23.   margin-top: 5px;
  24.   margin-bottom: 20px;
  25.   padding-top: 10px;
  26.   padding-bottom: 10px;
  27. }
  28. #leftzone {
  29.   float: left;
  30.   width: 180px;
  31. border: 1px solid black;
  32. }
  33. #rightzone {
  34.   float: right;
  35.   width: 180px;
  36. border: 1px solid black;
  37. }
  38. #centralzone {
  39. border: 1px solid black;
  40.   margin-left: 185px;
  41.   margin-right: 185px;
  42. }
  43. #footer {
  44.   clear: both;
  45.   width: 100%;
  46.   border: 1px solid black;
  47. margin-top: 5px;
  48. }
  49. -->
  50. </style>
  51. </head>
  52. <body>
  53. <div id="container">
  54. <div id="topzone">
  55.     HAUT DE PAGE
  56. </div>
  57.   <div id="logo">
  58.     IMAGE LOGO
  59.   </div>
  60.  <div id="leftzone">
  61.    <p>COLONNE GAUCHE</p>
  62.   </div>
  63. <div id="rightzone">
  64.    <p>COLONNE DROITE</p>
  65.    <p>COLONNE DROITE</p>
  66.   </div>
  67. <div id="centralzone">
  68.    <p>COLONNE CENTRE</p>
  69.    <p>COLONNE CENTRE</p>
  70.    <p>COLONNE CENTRE</p>
  71.   </div>
  72. <div id="footer" >
  73.   BAS DE PAGE
  74. </div>
  75. </div>
  76. </body>
  77. </html>


 
Merci d'avance de votre aide !!!

Reply

Marsh Posté le 15-10-2007 à 19:15:10   

Reply

Marsh Posté le 15-10-2007 à 19:30:48    

Met-nous un exemple en image, j'ai débranché mon parser/renderer interne là :/

Reply

Marsh Posté le 15-10-2007 à 19:36:37    

Salut,
 
J'ai bien une image, mais apparemment faut l'uploader sur un site puis mettre l'url entre les balises [img][/img]. Mais je n'ai pas de site pour l'uploader : vous faites comment, vous ?

Reply

Marsh Posté le 15-10-2007 à 19:37:18    

genre avec imageshack.us

Reply

Marsh Posté le 15-10-2007 à 19:43:14    

Voila (merci FlorentG  :sol: ) !
 
http://img100.imageshack.us/img100/9011/designne7.th.png

Reply

Marsh Posté le 15-10-2007 à 19:44:07    

T'as posté le mauvais truc :D on peut pas cliquer

Reply

Marsh Posté le 15-10-2007 à 19:47:19    

J'espère que cette fois c'est bon ...
 
http://img100.imageshack.us/img100/9011/designne7.th.png

Reply

Marsh Posté le 15-10-2007 à 19:49:28    

Ok, cette fois-ci c'est bon :)
 
Alors en fait, ton cas est le cas le plus relou avec les CSS :sol: Y'a quelques solutions qui existent, mais le mieux est de tricher. Et encore...
 
Est-ce que les bordures noires sont très importantes ?

Reply

Marsh Posté le 15-10-2007 à 19:51:26    

Eh oui, ces bordures sont importantes !!! J'ai bien vu différents tutos qui trichent en jouant sur les couleurs de fond, mais ça ne marche pas quand je rajoute des bordures.

Reply

Marsh Posté le 15-10-2007 à 19:54:47    

Y'aurait une solution, mais assez dangereuse... En mettant un overflow hidden sur le conteneur des colonnes, et en mettant un margin de -32767px et un padding de 32767px sur les trois colonnes [:dawak]

Reply

Marsh Posté le 15-10-2007 à 19:54:47   

Reply

Marsh Posté le 15-10-2007 à 20:00:53    

 :heink:  
J'ai un niveau plutôt basique en CSS : tu peux m'expliquer comment fonctionne la solution que tu proposes, histoire de ne pas juste appliquer bêtement ? et en quoi elle est dangereuse ?

Reply

Marsh Posté le 15-10-2007 à 20:01:58    

Quelques navigateurs la supporte mal, mais bon... Tous les détails : One true layout

Reply

Marsh Posté le 15-10-2007 à 20:04:41    

OK, je vais lire ça.
Merci pour tes réponses et a+

Reply

Marsh Posté le 15-10-2007 à 20:39:07    

Bon, alors je viens d'appliquer la méthode, mais ça ne marche pas complètement : la bordure du bas de mes 3 colonnes n'apparaît pas (testé sous Firefox 2).
Je crois que je vais garder mes tableaux ...

Reply

Sujets relatifs:

Leave a Replay

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