Elastyczny układ strony
W Tokijskim magazynie PingMag, Jon przedstawia pięć webdesignerskich wzorów, które mają być odpowiedzią na najczęstsze problemy użytkowników dotyczące usability.
Jednym z ciekawszych rozwiązań jakie wskazał Jon wydał mi się Elastic Design. Chodzi to taki rodzaj layoutu, który automatycznie dostosuje swoje proporcje gdy zwiększy się rozmiar fonta w przeglądarce.
Sposób prosty i sympatyczny - layout nie tylko nie "rozjeżdża się" po zwiększeniu rozmiaru fontu z poziomu przeglądarki ale też "skaluje się". Chodzi o coś takiego.
Jak to zrobić? Całe to "magiczne" skalowanie opiera się o działanie na jednostkach em w CSSie. Em to specyficzna, relatywna jednostka której rozmiar odpowiada wielkiej literze M (czy "bloku", który ta litera zajmuje). Em jest relatywna czyli jej długość zależy od innej długości.
W naszym wypadku jednostką wyjściową będzie domyślne em przeglądarki. Domyślne em w większości popularnych przeglądarek wynosi 16px. Dlatego w body ustaliłem 0.75em co odpowiadałoby 12px fontowi.
Rozmiar .em jest relatywny - zaznaczam kolejny raz - czyli jeśli w body ustaliłem font-size na 0.75em to naszym nowym 1em w klasach dziedzicznych do body będzie odpowiadało 12px. Powiedzmy, że chcemy, żeby domyślny layout miał szerokość 760px. 760px / 12px = 63.33em. No i już wiemy, że nasz główny kontener będzie miał 63.33em.
Resztę rozmiarów robimy analogicznie. Trzeba pamiętać tylko o tym, że esencją emów jest ich relatywność, tak więc projektując konkretne rozwiązania graficzne musimy mieć na uwadze to, że domyślne ustawienie pewnie będą skalowane - layout będzie rósł lub malał więc, żeby nic się nie posypało trzeba unikać jednostek absolutnych (mówię o pikselach jeśli piksel to jednostka absolutna co nie do końca jest prawdą).
Wszelkie paddingi, marginesy i interlinie muszą być elastyczne i relatywne, muszą wzajemnie się określać, dzięki temu zachowamy odpowiednie proporcje w czasie powiększania.
Na koniec efekt mojej, krótkiej zabawy w elastyczny layout. Zrobiłem w ten sposób coś na kształt wersji popularnej, blogowej skórki K2. Nie powala graficznie ale pokazuje jak łatwo i szybko można:
- zrobić coś na kształt skórki k2 ;)
- zrobić to coś opierając się tylko o jednostki relatywne
- BIG BAER Explains CSS Font-Size
- CSS2 syntax and basic data types - length units
- Em Calculator - może pomóc w liczeniu (jeśli koniecznie musisz przeliczać na px - co obowiązkiem przy stosowaniu emów nie jest) ale nie musi bo dzielenie na liczbach naturalnych to mało zaawansowana matematyka. ;)