Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][CSS] Szablon DIV - problem pomocy..
Forum PHP.pl > Forum > Przedszkole
adi456
Witam, mam taki dziwny problem, z tego co czytałem w kursach gdy ustawi się styl float: left ,
element będzie oblewany z prawej strony całą pozostałością na stronie,
analogicznie gdy mam 3 divy w lewym ustawie float: left w prawym float:right, to środek powinien się rozciągać w zależności od rozdzielczości oraz rozmiarów przeglądarki, i tak się dzieje tylko dlaczego prawy div jest na wysokości kończącego się środkowego?

podgląd: http://bazujemy.pl/test/

kod html:
  1. <head>
  2. <link rel="Stylesheet" type="text/css" href="style.css" />
  3. </head>
  4.  
  5. <div id="left">
  6. lewa
  7. </div>
  8. <div id="tresc">
  9. srodek
  10. </div>
  11. <div id="right">
  12. prawa
  13. </div>
  14. </body>
  15. </html>


kod css:
  1. #left {
  2. float:left;
  3. width: 240px;
  4. border: 1px solid;
  5. }
  6. #tresc {
  7. margin-left:290px;
  8. margin-right:290px;
  9. min-height: 500px;
  10. min-width: 200px;
  11. border: 1px solid;
  12. }
  13. #right {
  14. float:right;
  15. width: 240px;
  16. border: 1px solid;
  17. }
jacobson
ja mam cos takiego - o takie chodzilo ?
http://jsfiddle.net/5mJQT/2/
adi456
dokładnie o to chodziło ale dołożyłem do środka float: left wykasowałem marginesy efekt mam taki że środek się nie rozciąga
jacobson
a chcesz osiagnac zeby wszystkie 3 divy byly dokladnie obok siebie ? ja jak ogladam Twoj przykald w operze to sa obok siebie tylko miedzy trescia a prawym divem jest przerwa.
adi456
chce zrobić tak jak jest tu http://bazujemy.pl/test/

ale żeby prawy div był na wysokości pozostałych

po twojej modyfikacji mam tak http://bazujemy.pl/test2/

czyli jest ok gdyby środkowy div dopasowywał się do szerokości w przegladarce

według kursu http://www.kurshtml.edu.pl/css/plynny_szablon,szablon.html kod w test jest poprawny tylko dlaczego to nie działa?
jacobson
nie dziala poniewaz min-width najwidoczniej nie dziala przy plywajacych elementach... moze zamiast tego sprobuj ustawic % szerokosc kazdego elementu. np 10% , 80%, 10% albo srodek troche mniejszy ze wzgledu na krawedzie.
Bateria
Jestem pewien że chodziło Ci o to:
  1. #left {
  2. float:left;
  3. width: 20%;
  4. border: 1px solid black;
  5. }
  6. #tresc {
  7. min-width: 59%;
  8. border: 1px solid;
  9. float: left;
  10. }
  11. #right {
  12. float: left;
  13. width: 20%;
  14. border: 1px solid black;
  15. }


Chodzi o to że szerokość okien musisz dopasować "Procentowo" do wielkości okna przeglądarki.
jacobson
dokladnie o to mi chodzilo. Ale chyba dziala poprawnie.
Bateria
Jak chcesz się odwdzięczyć to kliknij napis 'Pomógł smile.gif'
adi456
wykasowałem z przykładu min-height: 500px; min-width: 200px; i dalej to samo, che tylko żeby sodek był elastyczny więc % nie daje rady ponieważ w zależności od szerokości będą robiły się różne odstępy miedzy divami

zrobiłem już parę stron i nigdy nie mogłem poradzić sobie z tym problemem i zawsze robiłem każdy div na float: left ale było wszystko na sztywno teraz chce żeby środkowy element był elastyczny no i problem sad.gif

dzięki Bateria działa wink.gif
jacobson
znalazlem przed chwila taki link: http://css-tricks.com/138-the-perfect-fluid-width-layout/ moze tutaj znajdziesz cos dla siebie - strona elastyczna z zakresu podanego na niej i udostepniaja swoj kod. Moze Ci pomoze smile.gif
adi456
jednak dupa... wszystko jest ok dopóki środek nie zapełnie treścią

patrz http://bazujemy.pl/test3/
Bateria
  1. #left {background:green;width:280px;float:left;margin-left:-745px}
  2. #right {background:red;width:465px;float:left;margin-left:-465px}
  3. #tresc {background:blue}


Musi działać
adi456
dalej źle
http://bazujemy.pl/test5/

tu jest więcej zbudowanej strony
bazujemy.pl/szukaj

jak macie pomysł co z tym można zrobić to piszcie a ja na bierząco będe edytować strone
Kshyhoo
Eh, kombinujecie i kombinujecie:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <title>Test trzech DIV-ów</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta http-equiv="Content-Language" content="pl" />
  6. </head>
  7. <style type="text/css">
  8. #wrapper {
  9. /* Szerokość całej naszej strony.
  10. Jeśli nie ustawimy szerokości - nie
  11. zadziała centrowanie! */
  12. width: 970px;
  13. margin: 0 auto; /* Centrowanie całej strony */
  14. }
  15. #container {
  16. float: left;
  17. /* Jeśli nie dodamy float - nie
  18. zadziała nam background-color ! */
  19. background-color: #dedede;
  20. }
  21. #header {
  22. width: 970px;
  23. height: 85px;
  24. background-color: lightblue;
  25. }
  26. #left {
  27. float: left;
  28. width: 195px;
  29. padding: 5px;
  30. /* Łącznie: 195 + 2 * (5) = 205px */
  31. background-color: teal;
  32. }
  33. #center {
  34. float: left;
  35. width: 550px;
  36. padding: 5px;
  37. /* Łącznie: 550 + 2 * (5) = 560px */
  38. background-color: green;
  39. }
  40. #right {
  41. float: left;
  42. width: 195px;
  43. padding: 5px;
  44. /* Łącznie: 195 + 2 * (5) = 205px */
  45. background-color: orange;
  46. }
  47. #footer {
  48. float: left;
  49. width: 970px;
  50. height: 25px;
  51. background-color: lightblue;
  52. }
  53. </style>
  54. <div id="wrapper">
  55. <div id="container">
  56. <div id="header">
  57. Tutaj logo...
  58. </div>
  59. <div id="left">
  60. <a href="#">Link 1</a><br />
  61. <a href="#">Link 2</a><br />
  62. <a href="#">Link 3</a><br />
  63. <a href="#">Link 4</a><br />
  64. <a href="#">Link 5</a>
  65. </div>
  66. <div id="center">
  67. Lorem ipsum dolor sit amet,
  68. consectetur adipiscing elit.
  69. Proin at mollis erat. Nam
  70. luctus nulla aliquam tellus
  71. vestibulum iaculis. Lorem
  72. ipsum dolor sit amet,
  73. consectetur adipiscing elit.
  74. Curabitur scelerisque massa
  75. vel augue porttitor tristique.
  76. Proin ut ipsum a risus tincidunt
  77. fermentum at vel mi. Integer
  78. adipiscing suscipit felis id
  79. eleifend.
  80. </div>
  81. <div id="right">
  82. <a href="#">Link 1</a><br />
  83. <a href="#">Link 2</a><br />
  84. <a href="#">Link 3</a><br />
  85. <a href="#">Link 4</a><br />
  86. <a href="#">Link 5</a>
  87. </div>
  88. <div id="footer">
  89. Stopka
  90. </div>
  91. </div>
  92. </div>
  93.  
  94. </body>
  95. </html>

adi456
ha kombinujemy bo to nie takie łatwe, float: left w każdym divie to dobry sposób ale tylko wtedy gdy divy mają stałą szerokość w tym przypadku środek ma być elastyczny
Kshyhoo
Też nie problem:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <title>Test trzech DIV-ów</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta http-equiv="Content-Language" content="pl" />
  6. </head>
  7. <style type="text/css">
  8. #wrapper {
  9. /* Szerokość całej naszej strony.
  10. Jeśli nie ustawimy szerokości - nie
  11. zadziała centrowanie! */
  12. width: 100%;
  13. margin: 0 auto; /* Centrowanie całej strony */
  14. }
  15. #container {
  16. float: left;
  17. /* Jeśli nie dodamy float - nie
  18. zadziała nam background-color ! */
  19. background-color: #dedede;
  20. }
  21. #header {
  22. 100%;
  23. height: 85px;
  24. background-color: lightblue;
  25. }
  26. #left {
  27. float: left;
  28. display: inline;
  29. width: 195px;
  30. padding: 5px;
  31. /* Łącznie: 195 + 2 * (5) = 205px */
  32. background-color: teal;
  33. }
  34. #center {
  35. <!-- float: left; -->
  36. display: inline;
  37. <!-- width: 550px; -->
  38. padding: 5px;
  39. /* Łącznie: 550 + 2 * (5) = 560px */
  40. background-color: green;
  41. }
  42. #right {
  43. float: right;
  44. display: inline;
  45. width: 195px;
  46. padding: 5px;
  47. /* Łącznie: 195 + 2 * (5) = 205px */
  48. background-color: orange;
  49. }
  50. #footer {
  51. float: left;
  52. width: 100%;
  53. height: 25px;
  54. background-color: lightblue;
  55. }
  56. </style>
  57. <div id="wrapper">
  58. <div id="container">
  59. <div id="header">
  60. Tutaj logo...
  61. </div>
  62. <div id="left">
  63. <a href="#">Link 1</a><br />
  64. <a href="#">Link 2</a><br />
  65. <a href="#">Link 3</a><br />
  66. <a href="#">Link 4</a><br />
  67. <a href="#">Link 5</a>
  68. </div>
  69. <div id="right">
  70. <a href="#">Link 1</a><br />
  71. <a href="#">Link 2</a><br />
  72. <a href="#">Link 3</a><br />
  73. <a href="#">Link 4</a><br />
  74. <a href="#">Link 5</a>
  75. </div>
  76. <div id="center">
  77. Lorem ipsum dolor sit amet,
  78. consectetur adipiscing elit.
  79. Proin at mollis erat. Nam
  80. luctus nulla aliquam tellus
  81. vestibulum iaculis. Lorem
  82. ipsum dolor sit amet,
  83. consectetur adipiscing elit.
  84. Curabitur scelerisque massa
  85. vel augue porttitor tristique.
  86. Proin ut ipsum a risus tincidunt
  87. fermentum at vel mi. Integer
  88. adipiscing suscipit felis id
  89. eleifend.
  90. </div>
  91.  
  92. <div id="footer">
  93. Stopka
  94. </div>
  95. </div>
  96. </div>
  97.  
  98. </body>
  99. </html>
adi456
problem rozwiązany dzięki użytkownikowi Kshyhoo odkryłem ciekawa zależność,

mamy 3 divy: lewy (z float left), środek, prawy (z float right)

gdy dam je w kolejności

lewy, środek, prawy - prawy będzie poniżej pozostałych

a gdy dam
lewy, prawy, środek - wszystko jest na jednej wysokości, środkowy div będzie elastyczny

p.s. Kshyhoo display: inline jest niepotrzebne a w moim przypadku rozwala to strone
Kshyhoo
Cieszę się, że mogłem pomóc.
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.