Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 3 kolumny, zewnetrzne dopasowane do srodkowej
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
eizomaster
Witam,

mam mały problem, czytam o tym od jakiegos czasu i nie wiem do tej pory jaka metode zastosowac? sad.gif Mianowicie mam layout w trzech kolumnach, kolumna lewa ma mieć x%, kolumna srodkowa np. 800px i kolumna prawa rowniez ten sam x%, gdzie x% dostosowywalby sie automatycznie tym samym kolumne srodkowa umieszczalby na srodku.
Margin: 0 auto; dla srodkowej kolumny odpada poniewaz chcialbym w lewej i prawej kolumnie umiescic jakas zawartosc. Macie jakies pomysly?
Przedstawiam obrazek: http://img10.imageshack.us/img10/7588/problempp.png
t4keda
A co się stanie jeśli dla bocznych kolumn dasz coś takiego:

  1. max-width: 50%;
eizomaster
To wyswietla sie jako 50% strony, jedno pod drugim - obrazek: http://img682.imageshack.us/img682/1440/problem2.png

<div style="width: 100%;">
<div style="max-width: 50%; background-color: red;"> lewe </div>
<div style="width: 800px; background-color: green;"> srodek </div>
<div style="max-width: 50%; background-color: red;"> prawe </div>
</div>
Blame
A float dla bocznych kolumn?
t4keda
Z tym, że lewa kolumna ma float: left, a prawa ma mieć float:right.
athei
  1. <div style="width:98%; margin: 0 auto;"> <!--opcjonalnie - centruje strone -->
  2. <div style="float:left; width:100%; margin-left:-20%; ">
  3. <div style="margin: 0 500px 0 20%; background-color: red;"> lewe </div>
  4. </div>
  5. <div style="float:left; width:500px; margin-left:-500px; background-color: green; "> srodek </div>
  6. <div style="float:left; width:20%; background-color: red;"> prawe </div>
  7. </div><!--opcjonalnie - centruje strone -->

sebastiankozub
Cytat
  1. <div style="width:98%; margin: 0 auto;"> <!--opcjonalnie - centruje strone -->
  2. <div style="float:left; width:100%; margin-left:-20%; ">
  3. <div style="margin: 0 500px 0 20%; background-color: red;"> lewe </div>
  4. </div>
  5. <div style="float:left; width:500px; margin-left:-500px; background-color: green; "> srodek </div>
  6. <div style="float:left; width:20%; background-color: red;"> prawe </div>
  7. </div><!--opcjonalnie - centruje strone -->


sprawdzałeś jak to wygląda zanim koledze pomagałeś? wiocha

nie potrafię wygooglować nawet tego... a co chciałbyś umieścić w bocznych - bo jeśli nie tekst tylko obraz to zrobiłbym środkową margin: auto a obrazek w tle <body> questionmark.gif
zegarek84
Cytat(eizomaster @ 3.11.2009, 16:11:39 ) *
...Mianowicie mam layout w trzech kolumnach, kolumna lewa ma mieć x%, kolumna srodkowa np. 800px i kolumna prawa rowniez ten sam x%, gdzie x% dostosowywalby sie automatycznie tym samym kolumne srodkowa umieszczalby na srodku.

gdzieś coś podobnego znajomemu robiłem - już jestem zmęczony i na testy nie mam czasu ale pokombinuj w ten deseń (no akurat z position:abslute - sorki ale musisz kombinować jeśli chcesz inaczej ale coś w ten deseń):
  1. #srodek {display:block;
  2. position:absolute;
  3. left:50%;
  4. margin-left:-400px; /* od środka przesunięte o połowę szerokości */
  5. }
  6.  
  7. #lewa {display:block;
  8. position:absolute;
  9. right:50%;
  10. margin-right:400px; /* od środka oddalone o połowę szerokości środka*/
  11. }
  12.  
  13. #prawa {display:block;
  14. position:absolute;
  15. left:50%;
  16. margin-left:400px; /* od środka oddalone o połowę szerokości środka*/
  17. }

na pewno da się to też inaczej ale trzeba po testować (o 6 muszę wstawać do pracy więc nie mam nawet czasu sprawdzić to co napisałem) - ale coś w ten deseń - poprzesuwaj marginesami, padingami - jeśli chcesz na inne position to z float możesz kombinować ustalając wcześniej rozmiary bloków winksmiley.jpg
Daiquiri
Efekt 3 kolumn, podobnie jak proponował Zegarek84, tylko testowany smile.gif:
  1. <style type="text/css">
  2. #srodek {
  3. width:800px; background-color:#666;
  4. position: absolute; left: 50%; right:50%; margin-left:-400px;
  5. }
  6.  
  7. #lewy {
  8. float:left; width: 50%; background-color:#999;
  9. }
  10.  
  11. #prawy {
  12. float:left; width:50%; background-color:#999;
  13. }
  14. </head>
  15.  
  16. <div id="srodek">środek</div>
  17. <div id="lewy">lewy</div>
  18. <div id="prawy">prawy</div>
  19.  
  20. </body>
  21. </html>

IE nie wyświetli tego, dopóki nie zrobisz dodatkowej deklaracji w postaci np. margin-left:-1px; dla elementu lewy/prawy. Ma problem z wartościami po 50% (nie potrafi tego podzielić...)
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.