Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS]Lewa kolumna 200px prawa - cała reszta
Forum PHP.pl > Forum > Przedszkole
konrados
Witam,

Domyślam się, że problem był wałkowany wielokrotnie, ale jakoś tak ani wyszukiwarka tego forum ani googlowa nic mi sensownego nie pokazuje, bo też i po prostu nie wiem co w nią wpisać.

Chodzi o to, że chciałbym aby w layoucie lewa kolumna miała 200px a prawa - całą dostępną resztę (w x).

Tu jest stronka: http://jsfiddle.net/b4mQc/

A tu mój dotychczasowy, wstępny kod:

  1. <!DOCTYPE HTML>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. body {
  4. margin:20x;
  5. border:1px solid red;
  6. }
  7. .page_top{
  8. background-color: #999;
  9. }
  10. .page_contents_left{
  11. width:200px;
  12. background-color: #aaa;
  13. float:left;
  14. }
  15. .page_contents_right{
  16. /*width:100%;*/
  17. background-color: #ccc;
  18. float:left;
  19. }
  20.  
  21. .page_footer{
  22. clear:both;
  23. width:100%;
  24. background-color: #ddd;
  25. }
  26. </style>
  27. </head>
  28.  
  29. <div class="page_top">
  30. To jest top, ma zajmować 100% przestrzeni w x i to się udało
  31. </div>
  32.  
  33. <div class="page_contents_left">
  34. To jest left, ma zajmować 200px przestrzeni w x - to też się udało
  35. </div>
  36.  
  37. <div class="page_contents_right">
  38. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br/>
  39. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br/>
  40. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br/>
  41. </div>
  42.  
  43. <div class="page_footer">
  44. a to jest footer, też działa.
  45. </div>
  46. </body>
  47. </html>


Jak to zrobić? Przy czym page_contents_right ma zajmować swoją przestrzeń (pozostałą) niezależnie od treści - tam może nawet nic nie być.
Daiquiri
.page_contents_right i .page_contents_left wrzuć w jednego diva i nadaj mu wartość width: 100%, dodatkowo ustaw width: 100% dla .page_contents_right (a w zasadzie usuń komentarz) smile.gif.
konrados
To nic nie dało, spójrz:
http://jsfiddle.net/b4mQc/

I przy okazji (po raz pierwszy korzystam z tego serwisu) chyba nie tylko ja mogę to edytować, jeśli tak to to fajny serwis smile.gif jest.
chemikpil
Hmm... z tego co ja pamiętam to 100% = 100% a nie reszcie wolnej przestrzeni. Musisz nadać mu szerokość równą pozostałej przestrzeni.
konrados
Cytat
Musisz nadać mu szerokość równą pozostałej przestrzeni.

Tyle to ja umiem. left=70%, right=30% i działa.
Mi chodzi właśnie o to, by right wzięła całą dostępną szerokość, przy czym left musi być określony w pixelach.
Daiquiri
Działa, działa:
  1. <!DOCTYPE HTML>
  2.  
  3.  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. body {
  6. margin:20x;
  7. border:1px solid red;
  8. }
  9. .page_top{
  10. background-color: #999;
  11. }
  12. .page_contents_left{
  13. width:200px;
  14. background-color: #aaa;
  15. float:left;
  16. }
  17. .page_contents_right{
  18. /*width:100%;*/
  19. background-color: #ccc;
  20. width: 100%;
  21. }
  22.  
  23. .page_footer{
  24. clear:both;
  25. width:100%;
  26. background-color: #ddd;
  27. }
  28.  
  29. #holder {
  30. width: 100%;
  31. }
  32. </style>
  33.  
  34.  
  35. <div class="page_top">
  36. To jest top, ma zajmować 100% przestrzeni w x i to się udało
  37. </div>
  38.  
  39. <div id="holder">
  40. <div class="page_contents_left">
  41. To jest left, ma zajmować 200px przestrzeni w x - to też się udało
  42. </div>
  43.  
  44. <div class="page_contents_right">
  45. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  46. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  47. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  48. </div>
  49.  
  50. </div>
  51.  
  52. <div class="page_footer">
  53. a to jest footer, też działa.
  54. </div>
  55.  
  56.  
  57. </body></html>
konrados
W moim kodzie page_right też miał float:left (podobnie jak page_left). I dlatego nie działało, choć nie wiem czemu. Co oznacza, że muszę wrócić do książki "css dla debili" smile.gif

Tak więc ok, prawie działa - ale jest kolejny problem - page_right jeśli jest wyższa niż page_left, zaczyna otaczać od dołu page_left.

Aktualnie to wygląda tak: http://jsfiddle.net/b4mQc/
Co mam z tym zrobić?

Zastanawiam się, czy aby tego wszystkiego nie zrobić z table, chyba, że na powyższy problem jest jakieś proste rozwiązanie.
chemikpil
Ok to lekka poprawa kodu @Daiquiri
  1. <!DOCTYPE HTML>
  2.  
  3.  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. body {
  6. margin:20x;
  7. border:1px solid red;
  8. }
  9. .page_top{
  10. background-color: #999;
  11. }
  12. .page_contents_left{
  13. width:200px;
  14. background-color: #aaa;
  15. float:left;
  16. }
  17. .page_contents_right{
  18. background-color: #ccc;
  19. width: 100%;
  20. }
  21.  
  22. .page_contents_right .tresc{
  23. margin: 0 0 0 200px;
  24. padding: 5px;
  25. }
  26.  
  27. .page_footer{
  28. clear:both;
  29. width:100%;
  30. background-color: #ddd;
  31. }
  32.  
  33. #holder {
  34. width: 100%;
  35. }
  36. </style>
  37.  
  38.  
  39. <div class="page_top">
  40. To jest top, ma zajmować 100% przestrzeni w x i to się udało
  41. </div>
  42.  
  43. <div id="holder">
  44. <div class="page_contents_left">
  45. To jest left, ma zajmować 200px przestrzeni w x - to też się udało
  46. </div>
  47.  
  48. <div class="page_contents_right">
  49. <div class="tresc">To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  50. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  51. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  52. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  53. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  54. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  55. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  56. To jest right, ma zajmować <b>pozostałą</b> przestrzeń w x<br>
  57. </div>
  58. </div>
  59.  
  60. </div>
  61.  
  62. <div class="page_footer">
  63. a to jest footer, też działa.
  64. </div>
  65.  
  66.  
  67. </body></html>


Rozumiesz idee??
Poprawiłem tez tutaj więc możesz sprawdzić : http://jsfiddle.net/b4mQc/
konrados
OK, dzięki wam!
Ale przy tym stopniu skomplikowania myślę, że table, choć tak krytykowane, jest lepsze smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.