Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> layout na div-ach, to chyba zmęcznie
batman
post
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.
Go to the top of the page
+Quote Post
babejsza
post
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
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.
Go to the top of the page
+Quote Post
babejsza
post
Post #4





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

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


Chyba żartujesz (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

Ten post edytował babejsza 20.10.2006, 08:41:36
Go to the top of the page
+Quote Post
php programmer
post
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował php programmer 20.10.2006, 09:28:51
Go to the top of the page
+Quote Post
batman
post
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.
Go to the top of the page
+Quote Post
babejsza
post
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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) .

//edit

@batman
Które rozwiązanie nie jest satysfakcjonujące? Moje czy z A List Apart? Chyba, że oba (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . W takim przypadku zostaną Ci już właściwie tylko tabele. Ale nie polecam tego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

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





Grupa: Moderatorzy
Postów: 36 559
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
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 2.10.2025 - 16:13