Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> layout na div-ach, to chyba zmęcznie
batman
post 19.10.2006, 19:49:55
Post #1





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Witam

Za długo już patrzę w kod i nie wiem co się dzieje. Jeśli wpiszę w jednego div-a dużo tektu, następuje jego rozszerzenie wraz z tłem - jest to efekt jak najbardziej pożądany. Jednak pozostałe div-y ni jak nie chcą się rozciągnąć. Możecie zerknąć na kod i ocenić co źle zrobiłem ?

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <style type="text/css">
  3. #main {
  4. margin-top: 10px;
  5. margin-bottom: 10px;
  6. height: 10%;
  7. width: 800px;
  8. border: 1px solid #707070;
  9. }
  10.  
  11. #head {
  12. background-color: #DBDBDB;
  13. width: 800px;
  14. border: 1px solid #707070;
  15. }
  16.  
  17. #foot {
  18. background-color: #DBDBDB;
  19. width: 800px;
  20. border: 1px solid #707070;
  21. }
  22.  
  23. #box_left {
  24. float:left;
  25. height: 100%;
  26. width:650px;
  27. border: 0px none;
  28. }
  29.  
  30. #right {
  31. float:right;
  32. height: 100%;
  33. width:148px;
  34. border: 0px none;
  35. border-left: 1px solid #707070;
  36. background-color: #DBDBDB;
  37. }
  38.  
  39. #left {
  40. float: left;
  41. border-right: 1px solid #707070;
  42. width: 150px;
  43. height:100%;
  44. background-color: #DBDBDB;
  45. }
  46.  
  47. #center {
  48. float: right;
  49. width: 499px;
  50. height:100%;
  51. background-color: #EEEEEE;
  52. }
  53.  
  54. #wrap {
  55. }
  56.  
  57. </head>
  58.  
  59. <div id="head"><h3>text</h3></div>
  60. <div id="main">
  61. <div id="box_left">
  62. <div id="left">
  63. <p>aaa</p>
  64. <p>bbb</p>
  65. <p>ccc</p>
  66. <p>ddd</p>
  67. <p>eee</p>
  68. </div>
  69. <div id="center">vvvvvvvvvvv</div>
  70. </div>
  71. <div id="right"> </div>
  72. <div style="clear: both"></div>
  73. </div>
  74. <div id="foot">text</div>
  75.  
  76. </body>
  77. </html>


Efekt jest taki sam w IE, FF i Operze. Dodam jeszcze, iż użycie JavaScript odpada.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
babejsza
post 20.10.2006, 08:16:35
Post #2





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Możesz tak:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.  
  3.  
  4. <style type="text/css">
  5. #head {
  6. background-color: #DBDBDB;
  7. width: 800px;
  8. border: 1px solid #707070;
  9. }
  10.  
  11. #main {
  12. margin: 10px 0 10px 0;
  13. width: 800px;
  14. border: 1px solid #707070;
  15. background-color: #DBDBDB;
  16. }
  17.  
  18. #main br {clear: both;}
  19.  
  20. #left {
  21. float: left;
  22. width: 150px;
  23. }
  24.  
  25. #center {
  26. float: right;
  27. width: 498px;
  28. background-color: #EEEEEE;
  29. border-left: 1px solid #707070;
  30. border-right: 1px solid #707070;
  31. }
  32.  
  33. #right {
  34. float: right;
  35. width: 150px;
  36. }
  37.  
  38. #foot {
  39. background-color: #DBDBDB;
  40. width: 800px;
  41. border: 1px solid #707070;
  42. }
  43. </head>
  44.  
  45.  
  46.  
  47. <div id="head"><h1>Nagłowek</h1></div>
  48.  
  49. <div id="main">
  50. <div id="left">aaa</div>
  51. <div id="right">aaa</div>
  52. <div id="center">aaa</div>
  53. <br />
  54. </div>
  55.  
  56. <div id="foot">Stopka</div>
  57.  
  58. </body>
  59. </html>


Ale to pod warunkiem, że "center" będzie tym, który zawsze będzie najdłuższy. W innym przypadku trzeba będzie skorzystać z grafiki tła.

Ten post edytował babejsza 20.10.2006, 08:25:22
Go to the top of the page
+Quote Post
batman
post 20.10.2006, 08:25:01
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Nietety podane rozwiązanie nie działa. Ani w FF ani w IE. W Operze nawet nie sprawdzałem.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
babejsza
post 20.10.2006, 08:29:08
Post #4





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Chyba żartujesz smile.gif Działa w IE6, FF 1.5.0.7 oraz w Operze 9.02. Nie wiem na czym sprawdzałeś, ale zrób to jeszcze raz smile.gif. I powtarzam, to zadziała tylko w przypadku gdy blok #center będzie najwyższy.

//Edit

Jeżeli jednak będziesz potrzebował uniwersalnego rozwiązania, to tak jak napisałem wcześniej będziesz musiał posiłkować się grafiką. Więcej tutaj: Faux columns. Chyba, że ktoś wie jak zrobić, aby divy rozciągały się względem siebie bez wykorzystania grafik, ale nie wydaje mi się. Oczwiście mówię tu o rozwiązaniu działającym we wszystkich przeglądarkach winksmiley.jpg.

Ten post edytował babejsza 20.10.2006, 08:41:36
Go to the top of the page
+Quote Post
php programmer
post 20.10.2006, 09:21:53
Post #5





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

Ostrzeżenie: (0%)
-----


Cytat
zadziała tylko w przypadku gdy blok #center będzie najwyższy.

Nie no sory, skoro nie ma prostego rozwiazania (o ile wogóle jest)
na ten prosty problem, to w moich oczach mit łatwości używania DIV'ów
do tworzenia bloków, boleśnie upadł!

Mam nadzieje, że
może ktoś uratuje honor, tych co uważają inaczej smile.gif

Ten post edytował php programmer 20.10.2006, 09:28:51
Go to the top of the page
+Quote Post
batman
post 20.10.2006, 09:26:35
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




@babejsza
Zwracam honor. Działa. Miałem starą wersję w cache-u.
Niemniej jednak nie jest to dla mnie satysfakcjonujące rozwiązanie.

@php programmer
Muszę przyznać Ci rację. Do tej pory pracowałem na divach ułożonych w dwie kolumny i nie miałem najmniejszych problemów. Ale by tak się nakombinować do dodania trzeciej kolumny, to już lekka przesada.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
babejsza
post 20.10.2006, 09:28:48
Post #7





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Jest prosty sposób. Przedstawiono go w linku, który podałem. Dodatkowo są metody, aby nie robić tego za pomocą grafiki, ale niestety badzIEwie ich nie obsługuje. Poza tym nie widzę innego rozwiązania niż stosowanie elementów blokowych do tworzenia ... bloków. Chyba, że tabele nazywasz blokiem biggrin.gif.

//edit

@batman
Które rozwiązanie nie jest satysfakcjonujące? Moje czy z A List Apart? Chyba, że oba smile.gif. W takim przypadku zostaną Ci już właściwie tylko tabele. Ale nie polecam tego smile.gif.

Ten post edytował babejsza 20.10.2006, 09:31:46
Go to the top of the page
+Quote Post
nospor
post 21.10.2006, 07:50:04
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




posty OT zostaly przeniesione do wlasciwszego tematu:
http://forum.php.pl/index.php?showtopic=48750&st=120
tam jest dyskusja na ten temat


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:04