Faux Columns PL

Jeszcze nie dawno szukaÅ‚em rozwiÄ…zania na nurtujÄ…ce mnie ciÄ…gle pytanie: co zrobić, aby obie kolumny w dwukolumnowym designie byÅ‚y zawsze tej samej wysokoÅ›ci? A przynajmniej, żeby tylko przypominaÅ‚y z wyglÄ…du taki efekt. OdpowiedziÄ… jest bardzo czÄ™sto stosowany i przez wielu znany bajer o nazwie Faux Columns. Możemy o nim poczytać na A List Apart. To pod ten adres zawsze odsyÅ‚ajÄ… na forach, gdy ktoÅ› siÄ™ pyta o dwie kolumny tej samej wysokoÅ›ci. Jak już mówiÅ‚em - sam szukaÅ‚em takiego rozwiÄ…zania. Google’ujÄ…c po sieci za “faux columns” nie mogÅ‚em nigdzie natrafić na polskÄ… wersjÄ™ tej instrukcji. Stworzenie tego efektu jest tak proste, że polska wersja jÄ™zykowa do tego nie jest potrzebna. Niby… Bo przecież gdyby wszystko byÅ‚o takie jasne, ludzie po otrzymaniu linku do A List Apart nie prosiliby o wytÅ‚umaczenie tego, bo “nic nie rozumiejÄ…” (zwykle jednak nie chce im siÄ™ czytać zbyt dÅ‚ugiego tekstu ;) ). Dlatego postanowiÅ‚em wyjść takim osobom na przeciw i napisać w miarÄ™ Å‚opatologicznÄ… instrukcjÄ™ (oczywiÅ›cie w jÄ™zyku polskim) “Jak otrzymać Faux Columns?”.

O co chodzi?
Zwykły, najprostszy w świecie szablon strony składa się z topu (cała góra), contentu (treść właściwa), sidebaru (lewy lub prawy pasek z menu) oraz footera (stopka). Taki design możecie zobaczyć np. tutaj: Link.
Jak widać, jeśli content jest wypełniony taką ilością tekstu, że jego wysokość jest większa od wysokości sidebaru to pod sidebarem jest białe pole, co świadczy o tym, że sidebar się nie rozciąga. Tak samo jest, gdy sidebar jest większy od contentu. Wtedy akurat pod contentem mamy wolne pole.

RozwiÄ…zanie
Istnieje prosty trik, przez który odnosimy wrażenie, że oba divy (content oraz sidebar) są zawsze równej wysokości. Polega on na dodaniu jeszcze jednego diva obejmującego sidebar oraz content.
Aktualnie nasz szablon ma takÄ… budowÄ™:

  1. <div id="pagewidth">
  2. <div id="top"> Header</div>
  3. <div id="content">Content</div>
  4. <div id="sidebar">Sidebar</div>
  5. <div id="footer">Footer</div>
  6. </div>

Teraz czas stworzyć tego diva, który ma obejmować sidebar oraz content. Nadamy mu id wraper Przed <div id="content">Content</div> dodajemy jeszcze jedną linijkę kodu:

  1. <div id="wraper">

Dobra… StworzyliÅ›my diva, ale trzeba go jeszcze zamknąć oraz dodać odpowiednio ostylowany znacznik <br /> (spowoduje on, że nastÄ™pna linia znajdzie siÄ™ pod obiektem niezależnie od jego poÅ‚ożenia), bez niego trik nie zadziaÅ‚a np. pod Firefoksem. WiÄ™c po <div id="sidebar">Sidebar</div> dodajemy kolejne dwie linijki kodu:

  1. </div>
  2. <br style="clear: both" />

Obecnie nasz kod HTML powinien wyglądać tak:

  1. <div id="pagewidth">
  2. <div id="top"> Header</div>
  3. <div id="wraper">
  4. <div id="content">Content</div>
  5. <div id="sidebar">Sidebar</div>
  6. </div>
  7. <br style="clear: both;" />
  8. <div id="footer">Footer</div>
  9. </div>

Następnym krokiem będzie dodanie do arkusza stylów odpowiedniego kodu CSS dla naszego nowego diva:

  1. #wraper{
  2. background: url('img/bg.jpg') repeat-y;
  3. }

Powyższy kod będzie nadawał naszemu nowemu divowi background, czyli tło obrazkowe. Obrazek w tle będzie się powtarzał względem osi y, czyli mówiąc po ludzku: będzie się powtarzał w pionie.

Teraz jeden z najważniejszych etapów: stworzenie odpowiedniego pliku graficznego do tła. Najłatwiej jest zrobić zrzut ekranu (klawisz PRINT SCREEN na klawiaturze) aktualnego stanu strony. U mnie wygląda on tak: Link. Musimy znaleźć takie miejsce, gdzie nie ma tekstu ani w sidebarze, ani w contencie. Zaznaczyłem je tutaj na czerwono: Link (wy tego oczywiście nie zaznaczajcie na czerwono ;) ).
Teraz należy wyciąć ten pasek (UWAGA! Musi on mieć szrokość obu naszych divów! Czyli musi mieć po prostu szerokość całej naszej strony i zawierać w sobie tło z sidebaru oraz contentu!) i zapisać jako osobny plik bg.jpg mieszczący się w podkatalogu /img/ naszej strony.
U mnie, obrazek ten będzie miał wysokość 3px, a szerokość 700px. A oto i on: Link.

I gotowe! Oto efekty naszej pracy: Link.

Dodaj do ulubionychDodaj ten wpis do: + Wykop + Delicious + Linkologia

Komentarze (8):

Parol   13.09.2006 | 16:23

O kurka, udalo mi sie to wykombinowac 1,5 roku temu wlasna potega umyslu bez w/w tekstu ^_^
Tak - jestem z siebie dumny ze sam na to wpadlem. HA!

Zamber   22.09.2006 | 06:34

W spwcyfikacji css3 jest osobny argument do tego ;)
W FF albo O już działa od początku tego roku. Pamiętam bo miałem niezłą zabawę z tym ^^.

Nelly   10.02.2007 | 10:33

Jaki jest kod html na jakiś szablon-co by się nadawał na allegro ? (kolor tła)

almah   01.08.2007 | 01:31

tania Å›ciema, ja bym wolaÅ‚ coÅ› co naprawdÄ™ wyrównuje te div’y :P

Bielack   06.10.2007 | 14:19

Problem pojawia się wtedy, gdy mamy płynną szerokość contenera i sidebara - i dalej nie wiem jak to obejść.

krzywy36   13.12.2007 | 15:12

A może wstawić dwa divy w jeden duzy i ustawić ich wysokość na 100%…

MS   28.12.2007 | 12:45

No tak, a jak w sidebar kolorem tla jest gradient repeat-x?

ludwik   28.12.2007 | 15:49

@MS: jak to repeat-x? nie bardzo mogÄ™ sobie wyobrazić jak to wyglÄ…da… jakiÅ› screen może + kod?

Dodaj komentarz:

PaweÅ‚ Ludwiczak (pseudo. Ludwik) - z zamiÅ‚owania grafik, designer - freelancer. Adobe Photoshop nie jest mi obcy; mój budżet opiera siÄ™ głównie na wypocinach z tego programu. Ten blog jest o grafice, designie itp. Istnieje w sieci od 1 października 2006r. Chcesz wiedzieć wiÄ™cej? Zapraszam do dziaÅ‚u Kontakt.

All rights reserved. Wszelkie prawa zastrzeżone. Copyright (c) 2008 by Ludwik.org. Powered by Wordpress.