SlideShare a Scribd company logo
1 of 27
Download to read offline
IDZ DO
         PRZYK£ADOWY ROZDZIA£
                                         Kuloodporne strony internetowe.
                           SPIS TREŒCI   Jak poprawiæ elastycznoœæ
                                         z wykorzystaniem XHTML-a i CSS
           KATALOG KSI¥¯EK               Autor: Dan Cederholm
                                         T³umaczenie: Agata Bulandra
                      KATALOG ONLINE     ISBN: 83-246-0316-6
                                         Tytu³ orygina³u: Bulletproof Web Design: Improving flexibility
       ZAMÓW DRUKOWANY KATALOG           and protecting against worst-case scenarios with XHTML and CSS
                                         Format: B5, stron: 280
              TWÓJ KOSZYK
                                                       Poznaj tajniki projektowania doskona³ych stron internetowych
                    DODAJ DO KOSZYKA         • Wykorzystaj mo¿liwoœci jêzyka XHTML
                                             • Zastosuj standardy CSS
                                             • Zapewnij poprawne dzia³anie strony w ró¿nych przegl¹darkach
         CENNIK I INFORMACJE             W coraz dynamiczniej rozwijaj¹cym siê internecie mo¿na znaleŸæ setki tysiêcy witryn
                                         WWW. Wiele z nich to prawdziwe pere³ki — zarówno pod wzglêdem projektowym,
                   ZAMÓW INFORMACJE      jak i merytorycznym. Ile razy jednak, otwieraj¹c ulubion¹ witrynê WWW w innej
                     O NOWOŒCIACH
                                         przegl¹darce ni¿ dotychczas, widzimy coœ zupe³nie odmiennego? Jak czêsto
                                         projektuj¹c witrynê WWW, borykamy siê z ró¿nymi interpretacjami standardów
                       ZAMÓW CENNIK      w ró¿nych przegl¹darkach? Ile czasu trwa wzbogacanie strony o nowe elementy
                                         czy te¿ modernizacja uk³adu graficznego? Ilu projektantów stron WWW zastanawia siê,
                 CZYTELNIA
                                         jak poprawiæ elastycznoœæ i uniwersalnoœæ swoich dzie³?
                                         Dziêki wiadomoœciom zawartym w ksi¹¿ce „Kuloodporne strony internetowe.
          FRAGMENTY KSI¥¯EK ONLINE       Jak poprawiæ elastycznoœæ z wykorzystaniem XHTML-a i CSS” dowiesz siê, jak
                                         tworzyæ niemal doskona³e witryny WWW. Doskona³e — poniewa¿ wygl¹daj¹ równie
                                         dobrze w ka¿dej przegl¹darce i przy ka¿dej rozdzielczoœci ekranu. Poza tym s¹ ³atwe
                                         w nawigacji i proste w rozbudowie. Nauczysz siê korzystaæ z najnowszych standardów
                                         — XHTML i CSS, odpowiednio dobieraæ czcionki i ich rozmiary, pozycjonowaæ elementy
                                         strony i budowaæ uniwersalne mechanizmy nawigacyjne. Poznasz sposoby tworzenia
                                         kuloodpornych stron WWW.
                                             • Dobór rozmiaru czcionek
                                             • Skalowalne menu
                                             • Rozmieszczanie sk³adników strony
                                             • Definiowanie stylów dla ramek
                                             • Tworzenie uniwersalnych tabel
Wydawnictwo Helion
                                             • Budowanie skaluj¹cego siê uk³adu strony
ul. Chopina 6
44-100 Gliwice                           Jeœli wykorzystasz wiadomoœci z tej ksi¹¿ki, tworzone przez Ciebie strony WWW bêd¹
tel. (32)230-98-63                       naprawdê uniwersalne.
e-mail: helion@helion.pl
Spis treści


                 Wprowadzenie ............................................................................. 7

  Rozdział 1. Elastyczny tekst .........................................................................13
                 Częste rozwiązanie .................................................................................... 15
                 Wszystkie możliwości ................................................................................ 17
                 Rozwiązanie kuloodporne ......................................................................... 19
                 Dlaczego rozwiązanie to jest kuloodporne ................................................ 25
                 Elastyczna baza — i co dalej? .................................................................... 25
                 Stosowanie słów kluczowych i wartości procentowych ............................. 30
                 Podsumowanie .......................................................................................... 35

  Rozdział 2. Skalowalna nawigacja ...............................................................37
                 Częste rozwiązanie .................................................................................... 38
                 Dlaczego rozwiązanie to nie jest kuloodporne .......................................... 40
                 Rozwiązanie kuloodporne ......................................................................... 42
                 Dlaczego rozwiązanie to jest kuloodporne ................................................ 52
                 Dodatkowe przykłady ................................................................................ 53
                 Podsumowanie .......................................................................................... 56

  Rozdział 3. Elastyczne wiersze .....................................................................59
                 Częste rozwiązanie .................................................................................... 60
                 Dlaczego rozwiązanie to nie jest kuloodporne .......................................... 62
                 Rozwiązanie kuloodporne ......................................................................... 64
                 Dlaczego rozwiązanie to jest kuloodporne ................................................ 77
                 Inny przykład rozciągania .......................................................................... 78
                 Podsumowanie .......................................................................................... 83

  Rozdział 4. Pomysłowe rozmieszczanie elementów .......................................85
                 Częste rozwiązanie .................................................................................... 87
                 Dlaczego rozwiązanie to nie jest kuloodporne .......................................... 88
                 Rozwiązanie kuloodporne ......................................................................... 89
                 Dlaczego rozwiązanie to jest kuloodporne .............................................. 119
                 Podsumowanie ........................................................................................ 119
6   Spis treści


    Rozdział 5. Niezniszczalne ramki ............................................................... 121
                   Częste rozwiązanie .................................................................................. 122
                   Dlaczego rozwiązanie to nie jest kuloodporne ........................................ 124
                   Rozwiązanie kuloodporne ....................................................................... 125
                   Dlaczego rozwiązanie to jest kuloodporne .............................................. 131
                   Inne techniki tworzenia zaokrąglonych krawędzi ...................................... 132
                   Podsumowanie ....................................................................................... 140

    Rozdział 6. Brak rysunków? Brak CSS? Brak problemów .......................... 143
                   Częste rozwiązanie .................................................................................. 144
                   Dlaczego rozwiązanie to nie jest kuloodporne ........................................ 147
                   Rozwiązanie kuloodporne ....................................................................... 148
                   Dlaczego rozwiązanie to jest kuloodporne .............................................. 150
                   Ze stylami lub bez ................................................................................... 152
                   Kuloodporne narzędzia ........................................................................... 157
                   Podsumowanie ....................................................................................... 164

    Rozdział 7. Konwersja tabel ...................................................................... 167
                   Częste rozwiązanie .................................................................................. 168
                   Dlaczego rozwiązanie to nie jest kuloodporne ........................................ 170
                   Rozwiązanie kuloodporne ....................................................................... 171
                   Dlaczego rozwiązanie to jest kuloodporne .............................................. 191
                   Podsumowanie ....................................................................................... 192

    Rozdział 8. Płynny układ stron .................................................................. 195
                   Częste rozwiązanie .................................................................................. 196
                   Dlaczego rozwiązanie to nie jest kuloodporne ........................................ 199
                   Rozwiązanie kuloodporne ....................................................................... 201
                   Dlaczego rozwiązanie to jest kuloodporne .............................................. 233
                   Podsumowanie ....................................................................................... 234

    Rozdział 9. Łączenie w całość .................................................................... 235
                   Cel ........................................................................................................... 236
                   Dlaczego rozwiązanie to jest kuloodporne .............................................. 237
                   Konstrukcja ............................................................................................. 242
                   Modyfikacja stylów ze względu na przeglądarkę IE ................................. 268
                   Podsumowanie ....................................................................................... 272

                   Skorowidz ................................................................................ 273
ELASTYCZNY
TEKST
14   Rozdział 1.




                   Rozmiar tekstu ustal
                   przy użyciu słów kluczowych
                   oraz wartości procentowych,
                   dzięki czemu użytkownicy
                   będą mieli nad nim kontrolę.
                   Niewiele zagadnień dotyczących projektowania stron internetowych
                   jest tak kontrowersyjnych, jak zmiana rozmiaru tekstu. Temat ten
                   zawsze był kłopotliwy dla początkujących, wywoływał dyskusje oraz
                   dzielił narody. Może trochę wyolbrzymiam problem, ale faktycznie
                   wiele osób może się do niego niechętnie odnosić.

                   Nie jesteśmy w stanie uwolnić świata od problemu zmiany wielkości
                   wyświetlanego na stronie tekstu. W tym rozdziale pokażę jednak
                   strategię definiowania rozmiaru tekstu, która jest elastyczna i łatwa
                   do zaimplementowania, a jednocześnie pozwala projektantom za-
                   chować pełną kontrolę nad wyglądem stron.

                   Wszystkie przykłady w tej książce łączy jedna wspólna cecha — ela-
                   styczne dopasowanie się projektu do tekstu każdej wielkości. Umoż-
                   liwiając użytkownikowi kontrolę nad rozmiarem tekstu, zwiększamy
                   czytelność strony dla wszystkich internautów. Prawdziwe wyzwanie
                   stanowi zbudowanie strony internetowej, w której ta elastyczność
                   połączona jest z pomysłowym projektem graficznym. Poprzez zapo-
                   znanie się z wszystkimi zamieszczonymi w tej książce przykładami,
                   zyskamy solidne podstawy, by sprostać temu wyzwaniu.

                   Przyglądając się często stosowanemu rozwiązaniu projektowemu,
                   dowiemy się, dlaczego tak ważna jest możliwość zmiany wielkości
                   tekstu oraz dlaczego zaprezentowane przykładowe rozwiązanie nie
                   jest elastyczne.
                   Rozdział 1. Elastyczny tekst
Elastyczny tekst   15


Częste rozwiązanie
Często stosowany sposób definiowania wielkości tekstu prześledzimy
na przykładzie witryny eyeglasses.com — z pewnością odwiedzające tę
stronę osoby z wadami wzroku ucieszyłyby się z możliwości sterowa-
nia wielkością tekstu oraz z ogólnej czytelności strony (rysunek 1.1).




Rysunek 1.1. Często stosowany sposób definiowania rozmiaru tekstu
na przykładzie witryny eyeglasses.com

Witryna eyeglasses.com jest przykładem bardzo dobrego wykorzy-
stania kaskadowych arkuszy stylów. Tak jak w wielu innych ładnie
zaprojektowanych stronach internetowych, podstawowa wielkość
tekstu określona jest w jednostkach pikselowych poprzez zdefinio-
wanie wartości dla właściwości font-size w deklaracji stylu dla
elementu <body>:
16      Rozdział 1.

                                 body {
                                     font-size: 11px;
                                 }

                               Poprzez ustawienie wielkości czcionki dla elementu <body> (w na-
                               szym przykładzie 11px) projektanci strony definiują, że wyświetlony
 Chcieliśmy zaznaczyć,
                               na stronie tekst będzie miał wysokość 11 pikseli (chyba że dla jakie-
 że nie uważamy strony         goś fragmentu zostanie określona inna wartość). Zaletą określania
 eyeglasses.com za zły pro-    rozmiaru tekstu w pikselach jest to, że wielkość czcionki pozostaje
 jekt. Jest to ładnie zapro-   bez zmian niezależnie od tego, w jakiej przeglądarce lub urządzeniu
 jektowana witryna interne-    wyświetlany jest tekst. Stosowanie wartości pikselowych stało się
 towa, utworzona przy          popularne właśnie ze względu na ich konsekwentną, przewidywalną
 użyciu strukturalnego kodu    wielkość. Projektant, chcąc precyzyjnie zdefiniować wielkość tekstu
 oraz stylów CSS. Właśnie      wyświetlanego na stronie, zawsze chętniej użyje wartości pikselo-
 dlatego wybraliśmy ją jako    wych niż innych jednostek. Jednak istnieje pewien mały problem.
 nasz przykład. Tak na-
 prawdę potrzebny był nam
 pretekst do omówienia róż-    DLACZEGO TO ROZWIĄZANIE
 nych sposobów definiowa-      NIE JEST KULOODPORNE
 nia wielkości tekstu oraz
 wad i zalet najczęściej       Definiowanie rozmiaru tekstu w wartościach pikselowych daje pro-
 stosowanej metody.            jektantowi kontrolę nad wielkością czcionki. Niestety, wartości
                               pikselowe stwarzają kłopoty użytkownikom najbardziej popularnej
                               przeglądarki internetowej (Internet Explorer w systemie Windows —
                               IE/Win).

                               Przeglądarki internetowe zwykle umożliwiają użytkownikowi kon-
                               trolowanie rozmiaru tekstu poprzez zmianę rozmiaru określonego
                               przez projektanta. Funkcja ta jest bardzo przydatna dla osób z wa-
                               dami wzroku. Gdy użytkownik chce poprawić czytelność strony, wy-
                               starczy że z menu przeglądarki wybierze większy rozmiar tekstu (ry-
                               sunek 1.2).

                               Czyż nie jest to wspaniałe? Istnieje jednak pewien haczyk. Jeśli sto-
                               sowane są wartości pikselowe, użytkownicy przeglądarki Internet
Rysunek 1.2. Dzięki menu       Explorer nie mają możliwości zmiany rozmiaru tekstu na inny niż
Widok/Rozmiar tekstu           określony przez projektanta. Tak więc korzystanie z wartości pikse-
w IE6/Win użytkownik           lowych daje projektantowi największą precyzję przy ustalaniu wielkości
może dostosować rozmiar
                               czcionki, ale jednocześnie uniemożliwia użytkownikom przeglądarki
tekstu wyświetlanego
na stronie                     IE/Win dostosowywanie rozmiaru tekstu do własnych potrzeb. Użyt-
                               kownicy innych przeglądarek mogą zmieniać rozmiar czcionki bez
                               względu na to, w jaki sposób jest on zdefiniowany.
                               Możliwość dostosowania rozmiaru tekstu jest niezbędna dla osób
                               z wadami wzroku. Będzie ona także mile widziana przez wszyst-
                               kich chcących zwiększyć czytelność stron internetowych, na których
Elastyczny tekst            17

domyślnie zastosowano małe czcionki. W naturze wszystkich projek-
tantów leży chęć pełnej kontroli nad wyglądem całej witryny. Rezy-
gnując tylko z odrobiny tej kontroli w zakresie definiowania rozmiaru
tekstu, poprawiamy odbiór witryny przez internautów oraz zwięk-
szamy jej dostępność.                                                   Z technicznego punktu wi-
Wróćmy do braku możliwości zmiany wielkości tekstu, którego roz-
                                                                        dzenia piksel to względna
miar czcionki został zdefiniowany przy użyciu wartości pikselowych.     jednostka miary, która za-
Być może twórcy przeglądarki chcieli pozostać wierni idei, że piksel    leży od rozdzielczości urzą-
to piksel —jednostka, która nigdy się nie zmienia, nawet wtedy, gdy     dzenia, na którym jest wy-
użytkownik by tego chciał (a przecież ma do tego prawo). Mimo to        świetlana bądź drukowana.
wszystkie inne przeglądarki działają w sposób poprawny i umożli-        Na przykład rzeczywista
wiają użytkownikowi zmianę wielkości tekstu, którego rozmiar zo-        wielkość piksela wyświe-
stał określony w jednostkach pikselowych.                               tlanego na monitorze różni
                                                                        się od wielkości piksela
Wszystko byłoby prostsze, gdyby projektanci mogli definiować roz-       wydrukowanego.
miar czcionki w wartościach pikselowych, a użytkownicy mogli do-        Więcej informacji na ten
stosować go zgodnie ze swoimi wymaganiami. Jednak nie ma moż-           temat można znaleźć na
liwości skalowania tekstu w IE/Win, dlatego rozwiązanie to nie jest     stronie www.w3.org/
optymalne. Poznajmy więc inne sposoby definiowania rozmiaru tek-          TR/REC-CSS2/syndata.
stu. Na koniec ustalimy rozwiązanie, w którym zrezygnujemy z pre-
                                                                          html#pixel-units.
cyzji zapewnianej przez wartości pikselowe, ale które będzie posia-
dało ważną zaletę — skalowalność we wszystkich przeglądarkach.



Wszystkie możliwości
Oprócz stosowania wartości pikselowych istnieje kilkanaście innych
metod definiowania rozmiaru tekstu przy użyciu stylów CSS — warto
znać wszystkie.
Jednostki, które stosujemy, podając wartość dla właściwości font-
size w arkuszu CSS, można podzielić na cztery grupy.



JEDNOSTKI DŁUGOŚCI
Jednostki długości mogą być względne lub bezwzględne. Do względ-
nych jednostek zaliczamy:
    em — określenie wielkości względem rozmiaru czcionki elementu
    nadrzędnego (rodzica),
    ex — określenie wielkości względem wysokości litery x danej
    czcionki,
    px — określenie wielkości względem rozdzielczości urządzenia
    (najczęściej stosowana jednostka).
18   Rozdział 1.


                   Bezwzględne jednostki długości używane są przede wszystkim
                   w druku, jednak stosuje się je także wtedy, gdy znane są fizyczne
                   wymiary i właściwości przeglądarki lub urządzenia:

                       in — cale (ang. inches),

                       cm — centymetry,

                       mm — milimetry,

                       pt — punkty,

                       pc — pica.



                   SŁOWA KLUCZOWE — WZGLĘDNE
                   Jeśli chcemy określić względny rozmiar tekstu przy użyciu słów klu-
                   czowych, do wyboru mamy tylko dwa słowa:

                       larger,

                       smaller.

                   W ten sposób określimy wielkość czcionki względem aktualnej wiel-
                   kości czcionki elementu rodzica. Konsorcjum W3C (ang. World Wide
                   Web Consortium) — organizacja zajmująca się standaryzacją inter-
                   netu — wyjaśnia, że jeśli wielkość czcionki elementu rodzica okre-
                   ślono za pomocą słowa kluczowego medium, użycie słowa kluczo-
                   wego larger zwiększy rozmiar czcionki bieżącego elementu do
                   wielkości large. Więcej informacji na ten temat można znaleźć pod
                   adresem www.w3.org/TR/CSS21/fonts.html#font-size-props.

                   O tych wartościach należy myśleć jak o odpowiednikach elementów
                   <small> i <big> z języka HTML. Określają one zmianę wielkości tek-
                   stu względem wielkości zdefiniowanej gdzieś wyżej w drzewie do-
                   kumentu.


                   PROCENTY
                   Wartości procentowe określają rozmiar tekstu względem rozmiaru
                   tekstu elementu zawierającego bieżący element (elementu rodzica).
                   Użycie wartości 120% zwiększy uprzednio zdefiniowaną wielkość
                   o 20%, bez względu na to, jaka jednostka była stosowana (jeżeli ja-
                   kakolwiek była stosowana). W naszym kuloodpornym rozwiązaniu
                   do określenia wielkości tekstu wykorzystamy procenty w połączeniu
                   ze słowami kluczowymi.
Elastyczny tekst   19

SŁOWA KLUCZOWE — BEZWZGLĘDNE
Słowa kluczowe definiujące rozmiar w sposób bezwzględny korzy-
stają z tabeli rozmiarów czcionek przeglądarki lub urządzenia. Oto
siedem możliwych wielkości:

    xx-small,

    x-small,

    small,

    medium,

    large,

    x-large,

    xx-large.

Konsorcjum W3C sugeruje twórcom przeglądarek, by współczynnik
skalowania pomiędzy poszczególnymi słowami kluczowymi wynosił
1,5 oraz zaleca, by skala pozostała bez zmian, bez względu na fi-
zyczną wielkość tekstu po wyświetleniu. Czyli mówiąc prostym języ-
kiem — wielkość large jest półtora raza większa od wartości medium,
a wielkość small jest półtora raza mniejsza od wielkości medium.

Prosta składnia to tylko jedna z wielu zalet stosowania bezwzględ-
nych słów kluczowych, które bardziej szczegółowo omówimy w na-
stępnym podrozdziale.

Znamy już wszystkie jednostki, które można stosować we właści-
wości font-size, dlatego możemy przejść do omówienia strategii,
która zapewni elastyczną podstawę i da użytkownikom możliwość
sterowania wielkością tekstu.




Rozwiązanie kuloodporne
Podzielę się teraz rozwiązaniem, które skutecznie stosuję we wła-
snych projektach, łącząc bezwzględne słowa kluczowe z wartościami
procentowymi. Użycie słów kluczowych przy definiowaniu wielkości
tekstu we właściwości font-size rozwiązuje problem pokazany
wcześniej na przykładzie witryny eyeglasses.com (dotyczący milio-
nów stron). Gdy nie są stosowane wartości pikselowe, wszystkie
przeglądarki i urządzenia potrafią zmienić rozmiar wyświetlanego
na stronie tekstu. Przyjrzyjmy się, w jaki sposób należy stosować
słowa kluczowe.
20      Rozdział 1.


                              SŁOWA KLUCZOWE — WYJAŚNIENIE
                              Jak już wcześniej wspomniałem, rozmiar czcionki możemy określić
                              przy użyciu siedmiu słów kluczowych: xx-small, x-small, small,
                              medium, large, x-large, xx-large. Oto przykład, w jaki sposób
                              możemy użyć jednej z tych wartości, aby ustawić wielkość czcionki
                              dla elementu <body>:

                                body {
                                    font-size: small;
                                }

                              Słowo kluczowe definiuje rozmiar tekstu w zależności od ustawień
                              przeglądarki. Innymi słowy, jeżeli użytkownik ustawił w opcjach
                              przeglądarki wyświetlanie tekstu większego lub mniejszego od war-
                              tości domyślnej, to słowo kluczowe definiuje wielkość tekstu według
                              ustawionego w taki sposób rozmiaru podstawowego. Współczynnik
                              skalowania pomiędzy poszczególnymi słowami kluczowymi pozo-
                              staje stały, bez względu na to, jaką wielkość podstawową ustalono.

                              Na rysunku 1.3 każde słowo kluczowe napisane jest tekstem innej
                              wielkości. Skala wielkości zależy od ustawionego w przeglądarce
                              domyślnego rozmiaru czcionki. Do wykonania zrzutów użyłem prze-
                              glądarki Internet Explorer.




     Rysunek 1.3. Porównanie wielkości tekstu uzyskiwanej dzięki różnym słowom kluczowym.
     Na rysunku po prawej widoczna jest ta sama strona po zwiększeniu w przeglądarce
     rozmiaru tekstu
Elastyczny tekst   21

Jak widać, słowo small ma różną wielkość w zależności od ustawionej
w przeglądarce wielkości podstawowej. Jednak różnica pomiędzy
wielkością small a kolejną wartością w górę lub w dół jest stała.


REZYGNACJA Z PIKSELOWEJ PRECYZJI
Największą trudnością do przezwyciężenia dla każdego projektanta
korzystającego ze słów kluczowych (lub innych jednostek niebędą-
cych wartościami pikselowymi) jest to, że tekst może mieć odrobinę
różną wielkość w zależności od przeglądarki, systemu operacyjnego
oraz indywidualnych ustawień.

Przykładowa wielkość small może być różna, gdy tekst jest wyświe-
tlany w różnych przeglądarkach na różnych systemach operacyjnych,
nawet jeśli we wszystkich przeglądarkach domyślnie jest ustawiony
średni rozmiar czcionki.

Zasadę piksel to piksel można uznać za prawo ogólnie obowiązujące
w internecie. Jednak słowa kluczowe to tylko wskazówki dla prze-
glądarki w kwestii tego, jak duży lub mały ma być wyświetlany tekst.
Projekty (i ich użytkownicy) mogą wiele zyskać, jeśli ich autor jest
w stanie zaakceptować takie małe wariacje wielkości, wynikające ze
stosowania słów kluczowych, które zwiększają elastyczność projektu.


DWIE PRZESZKODY DO POKONANIA
W dalszej części tego rozdziału przedstawię kilka rozwiązań, mówią-
cych w jaki sposób można uniknąć tych drobnych różnic wielkości
tekstu w różnych przeglądarkach, gdy rozmiar czcionki został zdefi-
niowany przy użyciu słów kluczowych. Jednak najpierw muszę omó-
wić dwie ważne rozbieżności występujące w przeglądarkach Netscape
4.x oraz IE5.


NETSCAPE 4.X
Nawet przy domyślnych ustawieniach (średni rozmiar tekstu), prze-
glądarka Netscape 4 ma tendencję do wyświetlania tekstu tak małe-
go, że nie jest on czytelny na ekranie. Ze względu na niebezpieczeń-
stwo, iż nasz tekst będzie całkowicie nieczytelny, gdy korzystamy ze
stylów CSS do ustawienia wielkości tekstu na stronach wyświetla-
nych w przeglądarce Netscape 4.x, lepiej nie stosować słów klu-
czowych. Informacje wyjaśniające dlaczego nie jest to wskazane
rozwiązanie można znaleźć na stronie www.alistapart.com/articles/
  sizematters. Jednak nie będziemy się zbytnio przejmować kłopotami
22       Rozdział 1.


                               związanymi z przeglądarką Netscape 4.x, ponieważ w naszych przy-
                               kładach i tak zawsze będziemy ukrywać style przed tą starą aplika-
                               cją. Mamy więc jedną przeszkodę mniej.


                               IE5 DLA WINDOWS
                               Druga przeszkoda jest trochę bardziej skomplikowana, ponieważ
                               nie ma możliwości całkowitego ukrycia stylów przed przeglądarką
                               IE5/Win (a przeglądarka ta mimo wszystko nadal cieszy się ogrom-
                               nym powodzeniem — przynajmniej w czasie pisania tej książki). Prze-
                               szkoda ta wygląda na oczywistą pomyłkę programistów, którzy stwo-
                               rzyli IE5/Win.

                               Z powodów znanych tylko firmie Microsoft, w IE5 rozmiar tekstu,
                               którego wielkość została zdefiniowana przy użyciu słów kluczowych
                               jest o jeden stopień większy niż obowiązujące standardy przegląda-
                               rek. Na przykład, jeśli zadeklarujemy

                                  body {
                                      font-size: small;
                                  }

                               i wyświetlimy stronę przy domyślnych ustawieniach przeglądarki,
                               tekst w IE5/Win będzie miał taką samą wielkość, jak tekst o rozmiarze
                               medium wyświetlony w innych przeglądarkach. W przeglądarce IE5/
                               Win zaprojektowane przez nas strony nie wyglądają tak, jak chcieli-
                               śmy. Na rysunku 1.4 widoczna jest różnica wielkości tekstu (o roz-
                               miarze small) w przeglądarkach IE5 i IE6.




     Rysunek 1.4. Porównanie to ilustruje, że tekst o rozmiarze small w przeglądarce IE5 jest
     o jeden stopień większy niż w przeglądarce IE6/Win oraz w innych powszechnie stosowanych
     przeglądarkach
Elastyczny tekst   23

Aby ominąć ten problem i sprawić, by została zachowana jedna
wielkość tekstu przy wyświetlaniu tej samej strony w różnych prze-
glądarkach, zastosujemy pewną sztuczkę, dzięki której dla przeglą-
darki IE5/Win można zastosować inną regułę CSS niż dla pozostałych
przeglądarek. Dla stron wyświetlanych w IE5/Win zadeklarujemy (przy
użyciu słów kluczowych) rozmiar tekstu o jeden stopień mniejszy niż
dla pozostałych przeglądarek.


SZTUCZKA DLA IE5/WIN
Dla przeglądarki IE5/Win podamy rozmiar tekstu o jeden stopień
mniejszych przy użyciu sztuczki wymyślonej przez Tanteka Çelika (Box
Model Hack — www.tantek.com/CSS/Examples/boxmodelhack.html),
która polega na tym, że oszukujemy IE5/Win, mówiąc, że deklaracja
stylu CSS już się zakończyła. Dzięki tej sztuczce możemy właściwości
font-size najpierw przypisać mniejszą wartość, która zostanie
użyta w IE5/Win, a następnie nadpisać ją wartością przeznaczoną
dla innych przeglądarek.
Reguły CSS potrzebne do zadeklarowania rozmiaru small dla tekstu
elementu <body> wyglądają następująco:
  body {
      font-size: x-small; /* dla IE5/Win */
      voice-family: ""}"";
      voice-family: inherit;
      font-size: small; /* dla innych przeglądarek */
  }
  html>body { /* bądźmy mili dla Opery */
      font-size: small;
  }

Jak widać w powyższym kodzie, podstawowy rozmiar czcionki usta-
wiony został przy użyciu słowa kluczowego small. Jednak wcze-
śniej, ze względu na przeglądarkę IE5/Win, deklarujemy wartość
o jeden stopień niższą niż zamierzona, a następnie oszukujemy tę
przeglądarkę, że deklaracja stylu została zakończona. Osiągamy to
za pomocą następującej deklaracji:
  voice-family: ""}"";

Tylko przeglądarka IE5/Win rozpoznaje ten nawias zamykający, który
sugeruje, że deklaracja została zakończona. Dla wszystkich pozo-
stałych przeglądarek wartość x-small nadpisujemy poprzez zade-
klarowanie wartości small. Dzięki tak zdefiniowanym stylom CSS
uzyskujemy w miarę jednolitą wielkość tekstu podstawowego we
wszystkich przeglądarkach.
24   Rozdział 1.


                   Możemy także omówić drugą deklarację, w której została powtórzo-
                   na reguła font-size: small. Reguła ta — określana jako bądźmy
                   mili dla Opery — powoduje, że Opera (oraz inne przeglądarki) na
                   pewno nie zignoruje reguły, która znajduje się za sztucznym zakoń-
                   czeniem deklaracji dla IE5. Jeśli korzystamy ze sztuczki Box Model
                   Hack, zawsze powinniśmy umieścić tę deklarację. Dzięki niej wszystkie
                   zgodne przeglądarki poprawnie nadadzą zadeklarowane style i będą
                   mogły przejść do odczytywania następnej deklaracji w arkuszu stylów.


                   UPROSZCZONA WERSJA SZTUCZKI
                   BOX MODEL HACK
                   Opracowana przez Edwardsona Tana uproszczona sztuczka Box
                   Model Hack (SMBH — ang. Simplified Box Model Hack) umożliwia
                   osiągnięcie tego samego efektu (podanie innych wartości dla prze-
                   glądarki IE5/Win), przy mniejszej ilości kodu. Łatwiejsza do zrozu-
                   mienia jest też chyba użyta w tej wersji składnia.

                   Po zastosowaniu SMBH nasz poprzedni przykład wygląda następująco:
                     body {
                         font-size: small;
                     }
                     * html body {
                         font-size: x-small; /* dla IE5/Win */
                     font-size: small; /* dla innych wersji IE */
                     }

                   Arkusz rozpoczynamy od normalnej deklaracji stylów dla elementu
                   <body> i umieszczamy w nim regułę deklarującą dla tekstu wielkość
                   small. Następnie, używając selektora * html, wykorzystujemy dziurę
                   w przeglądarce IE, która umożliwia zdefiniowanie deklaracji tylko
                   dla przeglądarek IE. Przeglądarka IE5/Win ignoruje lewy ukośnik we
                   własności font-size, co umożliwia nam zadeklarowanie wartości
                   x-small dla IE5/Win i nadpisanie jej wartością small dla pozosta-
                   łych wersji przeglądarki IE.

                   W ten sposób uzyskujemy rezultat taki sam, jak w poprzednim przy-
                   kładzie. Jednak składnia użyta w tym rozwiązaniu jest dużo bardziej
                   zrozumiała. Bardziej szczegółowe informacje na temat sztuczki SBMH
                   można znaleźć na stronie http://www.info.com.ph/~etan/w3pantheon/
                     style/modifiedsbmh.html.

                   Oczywiście pojawiają się głosy, że stosowanie sztuczek typu Box
                   Model Hack czy SBMH jest zbyt uciążliwe i nie warto ich stosować
                   tylko po to, by poprawić rozmiar tekstu. Jeśli jednak zależy nam na
Elastyczny tekst            25

spójnym wyglądzie strony we wszystkich przeglądarkach, warto za-
płacić taką cenę.

Istnieją metody strategicznego zbierania wszystkich trików CSS
i umieszczania ich oddzielnie od schludnych i zgodnych arkuszy sty-    Więcej informacji na temat
lów. Kilka takich metod poznamy w rozdziale 9.                         stosowania słów kluczo-
                                                                       wych i wspomnianych tutaj
                                                                       sztuczek można znaleźć
Dlaczego rozwiązanie                                                   w szczegółowym artykule
                                                                       Todda Fahrnera
to jest kuloodporne                                                    w magazynie A List
                                                                       Apart (www.alistapart.
Po pokonaniu wszystkich przeszkód mamy w kuloodporny sposób               com/articles/sizematters).
zdefiniowaną wielkość tekstu podstawowego. Zamiast deklarować          Jeśli nie przeszkadza nam,
rozmiar czcionki w pikselach (tak jak ma to miejsce w przypadku        że w przeglądarce IE5/Win
strony eyeglasses.com oraz wielu innych witryn), w deklaracji dla      wyświetlany tekst jest o je-
elementu <body> używamy słowa kluczowego small, aby ustawić            den stopień większy, mo-
domyślną wielkość tekstu na stronie. Dzięki stosowaniu słów klu-       żemy z powodzeniem po-
czowych, w każdej przeglądarce i urządzeniu (włącznie z IE/Win) bę-    minąć opisane w tym
dzie istniała możliwość zmiany rozmiaru tekstu przez użytkownika.      podrozdziale przeszkody.
Takie rozwiązanie jest niezbędne dla ludzi z wadą wzroku — i to nie    Nie musimy ich pokony-
tylko dla osób szukających nowych okularów, ale także dla osób         wać, możemy je ominąć.
szukających przepisów, robiących zakupy czy czytających artykuły
w internecie. Mimo że ta mała zmiana okaże się prawie niezauważalna
dla przeciętnego użytkownika strony, będzie ogromnym ułatwieniem
dla tych, którzy dopiero po jej wprowadzeniu będą mogli z tej strony
skorzystać.



Elastyczna baza — i co dalej?
Na razie dowiedzieliśmy się, w jaki sposób należy definiować roz-
miar czcionki dla całej strony. Oczywiście chcemy, by niektóre ele-
menty projektu wyróżniały się inną wielkością czcionki — na przy-
kład nagłówki, listy, podpisy, nawigacja czy tabele. Tekst każdego
z tych elementów potencjalnie może być innej wielkości niż pod-
stawowy tekst na stronie. Jaki jest jednak najlepszy sposób deklaro-
wania rozmiaru tekstu innych elementów (mniejszego lub większego
od wielkości bazowej)?
Polecam metodę, która okazała się dla mnie najlepszym rozwiąza-
niem — jest zrozumiała i dzięki niej można łatwo modyfikować
rozmiar istniejącego tekstu oraz dodawać nowe deklaracje, nawet
już po opublikowaniu witryny.
26      Rozdział 1.


                              USTAW I ZAPOMNIJ
                              Podczas definiowania rozmiaru tekstu, tylko w jednym miejscu w na-
                              szym arkuszu stylów użyjemy wartości bezwzględnej. Słowo kluczowe
                              wielkości bezwzględnej zastosujemy tylko w deklaracji dla elementu
 Aby zachować spójność        <body>, tak jak omawialiśmy to wcześniej w tym rozdziale:
 wyglądu w przeglądarce         body {
 IE5/Win, tutaj także można         font-size: small;
 skorzystać z opisywanej        }
 wcześniej sztuczki Box
                              Jak widać na rysunku 1.5, wielkość 12 pikseli można porównać z wiel-
 Model Hack.
                              kością small. Oczywiście różnice te będą odrobinę inne w różnych
                              przeglądarkach, ponieważ każdy program może mieć zdefiniowaną
                              inną wielkość dla poszczególnych słów kluczowych. Jednak w więk-
                              szości przypadków użycie słowa kluczowego small przy definiowa-
                              niu podstawowego rozmiaru tekstu jest równoznaczne z ustawieniem
                              wartości 12px (przy założeniu, że użytkownik nie zmienił domyśl-
                              nych ustawień przeglądarki). Takie porównanie jest bardzo przydatne
                              dla projektantów dopiero zaczynających stosować słowa kluczowe.




                              Rysunek 1.5. Porównanie tekstu o wielkości 12px z tekstem,
                              którego rozmiar ustawiono za pomocą słowa kluczowego small.
                              Przy domyślnych ustawieniach przeglądarki (średni rozmiar tekstu)
                              otrzymany wynik jest bardzo podobny



                              PROCENTOWA ZMIANA WARTOŚCI BAZOWEJ
                              Podstawową wielkość tekstu ustawioną za pomocą słowa kluczo-
Rysunek 1.6. Przy użyciu      wego small będziemy modyfikować, korzystając z wartości procen-
procentów rozmiar             towych. Stosowanie wartości procentowych jest prostą drogą do
tekstu możemy zarówno
                              wizualizacji pożądanego rozmiaru elementu. Na rysunku 1.6 mo-
zwiększyć, jak i zmniejszyć
w stosunku do podstawo-       żemy zauważyć, jak wartości procentowe zwiększają lub zmniejszają
wej wielkości                 rozmiar czcionki w stosunku do podstawowej wielkości tekstu.
Elastyczny tekst   27

Jeśli na przykład chcemy, by element <h1> był odrobinę większy niż
tekst o wielkości small, wystarczy zadeklarować:

  body {
      font-size: small;
  }
  h1 {
      font-size: 150%;
  }

Elementy <h1> zawsze znajdują się wewnątrz elementu <body>,
dlatego ich tekst na pewno będzie półtora raza większy niż tekst
wielkości small (rysunek 1.7).




Rysunek 1.7. Wielkość tekstu elementu <h1> została ustawiona
na 150% wielkości small

Podobnie, może być wskazane, by tekst niektórych akapitów był
mniejszy niż podstawowy tekst strony, czyli w naszym przypadku
miał wielkość mniejszą niż small. W tym celu tworzymy klasę note
i dodajemy ją do krótkiego akapitu (rysunek 1.8).

  <p class="note">Akapit klasy „note”. Tekst tego akapitu
  jest mniejszy niż podstawowy tekst strony.</p>
28   Rozdział 1.




                   Rysunek 1.8. Wielkość tekstu klasy note to 85% wartości wielkości
                   ustawionej przez słowo kluczowe small (akapit klasy note został
                   dodatkowo wyróżniony szarym kolorem)

                   Tekst tego akapitu ma być nieznacznie mniejszy niż domyślna wiel-
                   kość tekstu, dlatego dodajemy dla tej klasy deklarację, w której użyta
                   jest wartość procentowa mniejsza niż 100%.

                     .note {
                         font-size: 85%;
                     }

                   Wartości procentowe możemy przypisać dowolnemu elementowi
                   strony, by zwiększyć lub zmniejszyć wielkość jego tekstu w stosunku
                   do wielkości tekstu elementu <body>.

                   Uproszczony arkusz stylów, w którym rozmiar tekstu poszczegól-
                   nych elementów określony jest przy użyciu wartości procentowych
                   wygląda następująco:
                     body {
                          font-size: small;
                     }
                     h1 {
                          font-size: 150%;
                     }
Elastyczny tekst   29

  h2 {
         font-size: 130%;
  }
  h3 {
      font-size: 120%;
  }
  ul li {
      font-size: 90%;
  }
  .note {
      font-size: 85%;
  }

Zadeklarowaliśmy stopniowo malejące wielkości dla trzech typów
nagłówków, pomniejszyliśmy tekst listy wypunktowanej oraz utwo-
rzyliśmy klasę note — możemy ją zastosować do każdego elementu,
którego tekst ma być mniejszy od wielkości domyślnej. Jest to pod-
stawowy przykład, jednak doskonale ilustruje on nasze dwuetapowe
rozwiązanie — najpierw należy ustawić podstawową wielkość tek-
stu przy użyciu słowa kluczowego, a następnie za pomocą war-
tości procentowych zwiększyć lub zmniejszyć wielkość tekstu
pozostałych elementów. Wystarczy zmienić wartość podstawową,
a reszta rozmiarów dostosuje się samoistnie.

Zaletą stosowania wartości podstawowych w połączeniu z warto-
ściami procentowymi jest to, że w celu zmiany podstawowej wielko-
ści tekstu wystarczy zmienić jedną regułę w deklaracji stylów dla
elementu <body>. Wielkości pozostałych elementów, które zostały
zdefiniowane przy użyciu wartości procentowych dostosowują się
do zmiany wielkości podstawowej. Zmiana rozmiaru czcionki z war-
tości small na large spowoduje zmianę wielkości tekstu wszyst-
kich elementów. Rozwiązanie to jest bardzo poręczne, nawet jeśli
w pewnym momencie zdecydujemy się na zdefiniowanie wielkości
podstawowej w innych jednostkach.

Z tych samych powodów rozwiązanie to doskonale się sprawdza
w przypadku użytkowników, którzy lubią korzystać z własnych arkuszy
stylów, nadpisujących wartości zdefiniowane w arkuszach strony
internetowej. Wystarczy, że użytkownik zdefiniuje jedną regułę mo-
dyfikującą podstawowy rozmiar tekstu, a rozmiar tekstu wszystkich
elementów proporcjonalnie się zmieni.
30   Rozdział 1.


                   Stosowanie słów kluczowych
                   i wartości procentowych
                   Aby pełniej wykorzystać zalety pracy ze słowami kluczowymi i war-
                   tościami procentowymi, należy pamiętać o kilku kwestiach. Infor-
                   macje zawarte w tym podrozdziale powinny pomóc we właściwym
                   dostosowaniu wartości procentowych. Wspomnę także o kilku naj-
                   ważniejszych aspektach, o których należy pamiętać przy zagnież-
                   dżaniu wartości procentowych.


                   USTAWIENIE POŚREDNIEJ WARTOŚCI BAZOWEJ
                   Bardzo przydatna sztuczka polega na dostosowaniu wielkości tekstu
                   przy użyciu słowa kluczowego i elementu <div>, w którym umieszcza
                   się całą zawartość strony. Często przy tworzeniu projektów opartych
                   na stylach CSS z różnych powodów stosuje się główny element
                   <div> zawierający wszystkie pozostałe elementy (więcej informacji
                   na ten temat można znaleźć w rozdziale 8.). Element ten możemy
                   także wykorzystać, by przy użyciu wartości procentowych dostoso-
                   wać do naszych wymagań wielkość tekstu zdefiniowaną słowami
                   kluczowymi.

                   Wyobraźmy sobie, że pracujemy z następującą strukturą:
                     <body>

                     <div id="container">
                         <h1>To jest tytuł</h1>
                         <p>Tekst o domyślnej podstawowej wielkości.</p>
                     </div>

                     </body>

                   Tak jak robiliśmy to we wcześniejszych przykładach, podstawową
                   wielkość tekstu możemy ustawić przy użyciu słów kluczowych, a wiel-
                   kość nagłówka <h1> możemy ustawić za pomocą wielkości procen-
                   towych:

                     body {
                          font-size: small;
                     }
                     h1 {
                          font-size: 150%;
                     }
Elastyczny tekst   31

Jeśli jednak stwierdzimy, że wartość small jest zbyt duża dla naszego
projektu (gdy wyświetlamy stronę przy domyślnych ustawieniach
przeglądarki), możemy ją zmienić na nieco mniejszą. Wystarczy przy
użyciu procentów zadeklarować mniejszą wielkość dla obiektu o iden-
tyfikatorze #container, w którym umieścimy wszystkie elementy
tekstowe strony.
  body {
       font-size: small;
  }
  h1 {
       font-size: 150%;
  }
  #container {
       font-size: 95%;
  }

Na rysunku 1.9 widać, że zmniejszyliśmy trochę domyślny rozmiar
czcionki. Wprowadzone zmiany dotyczą także tytułu.




Rysunek 1.9. Porównanie tekstu wielkości small (górna część)
z tekstem zmniejszonym poprzez ustawienie dla zawierającego go
pojemnika wielkości 95% (dolna część)

Dla tekstu w dolnej części rysunku, który w kodzie znajduje się
w elemencie <div> o identyfikatorze #container, dodaliśmy regułę
font-size: 95%. Tekst w górnej części rysunku ma wielkość usta-
wioną za pomocą słowa kluczowego small. Różnica w wyświetla-
nej wielkości jest niewielka.

Zaletą tego rozwiązania jest precyzyjne dostosowanie rozmiaru tek-
stu wtedy, gdy chcemy uzyskać wielkość pośrednią między wielko-
ściami nadawanymi przez dwa kolejne słowa kluczowe. Korzystając
32   Rozdział 1.


                   z istniejącego elementu <div>, w którym znajdują się wszystkie
                   elementy strony, możemy dowolnie zmieniać rozmiar tekstu i w ten
                   sposób zdefiniować własny rozmiar podstawowy.

                   Jednak najlepiej jest nie zagłębiać się zbytnio w szczegóły przy defi-
                   niowaniu wielkości tekstu, ponieważ w różnych przeglądarkach i róż-
                   nych systemach operacyjnych zawsze będą widoczne pewne różnice.
                   Najważniejsze jest, że użytkownicy będą mieli możliwość zmiany
                   wielkości tekstu przy użyciu narzędzi wbudowanych w przeglądarki.


                   ZAGNIEŻDŻAJĄC PROCENTY,
                   MUSIMY ZACHOWAĆ OSTROŻNOŚĆ
                   Przy zagnieżdżaniu wartości procentowych należy zachować ostroż-
                   ność. W poprzednim przykładzie podstawowa wielkość tekstu była
                   zdefiniowana przy użyciu wartości small, a następnie została zmniej-
                   szona do 95% oryginalnej wielkości poprzez dopisanie odpowiedniej
                   deklaracji do pojemnika <div id="container">. Wszystko może
                   się trochę skomplikować, gdy zaczniemy stosować wartości procen-
                   towe do innych elementów znajdujących się wewnątrz elementu
                   #container.

                   Na przykład wcześniej zadeklarowaliśmy, że wielkość elementu <h1>
                   będzie wynosić 150% wielkości podstawowej. Elementy <h1> znaj-
                   dują się niżej w drzewie dokumentu — poniżej obiektu #conta-
                   iner. Dlatego ich wielkość to nie 150% wielkości podstawowej, lecz
                   150% z wartości 95% z wielkości small. Na rysunku 1.10 przedsta-
                   wiono zależność pomiędzy zagnieżdżaniem elementów w dokumen-
                   cie a przypisanymi do nich wartościami procentowymi.




                                                    Rysunek 1.10.
                                                    Sposób wyliczania wartości
                                                    procentowych w przypadku
                                                    wielokrotnego zagnieżdżania
                                                    elementów


                   Faktycznie, możemy być trochę zdezorientowani. Być może pomocna
                   będzie zamiana słowa kluczowego small na wartość numeryczną.
Elastyczny tekst           33




Należy zachować szczególną ostrożność przy zagnieżdżaniu wartości procentowych mniejszych niż 100%
— zmniejszenie przez użytkownika domyślnej wielkości tekstu w przeglądarce może spowodować,
że tekst będzie zbyt mały i stanie się nieczytelny.
Innymi słowy, jeżeli projektant przy tworzeniu strony sugerował się ustawieniami domyślnymi i użył
małych wartości procentowych (takich, że przy ustawieniu średniego rozmiaru czcionki w przeglądarce
tekst nadal był czytelny), możliwe jest, że strona będzie nieczytelna, gdy użytkownik wybierze w przeglą-
darce mniejszy rozmiar czcionki.
Czytelność tekstu na stronie należy przetestować przy różnych ustawieniach rozmiaru tekstu w różnych
przeglądarkach, niezależnie od używanego połączenia słów kluczowych i procentów. Rada ta jest dobra
bez względu na to, z jakiej metody ustawienia wielkości tekstu korzystamy.
Bardzo ciekawy jest test Owena Briggsa, porównujący wielkości tekstu w różnych przeglądarkach,
na różnych systemach i przy zastosowaniu różnych systemów definiowania rozmiarów tekstu
(www.thenoodleincident.com/tutorials/box_lesson/font/method.html). Na stronie testu Briggs umieścił
264 zrzuty ekranowe, dzięki czemu w jednym miejscu można porównać wszystkie uzyskane wyniki
(rysunek 1.11).




Rysunek 1.11. Test Owena Briggsa dotyczący wyświetlanej wielkości tekstu to cenne źródło
informacji, zawierające 264 zrzuty ekranowe, które przedstawiają prawie każdą możliwą
kombinację ustawień
34   Rozdział 1.


                   Jeżeli wielkość tekstu dla elementu <body> wynosi 10 (zamiast
                   small), to wszystko wewnątrz elementu #container będzie miało
                   wielkość 9,5 (czyli 95% z 10). Nagłówek <h1> znajduje się wewnątrz
                   elementu #container, a rozmiar czcionki ustawiony dla tych na-
                   główków wynosi 150%. Wartość 150% z pierwszej wielkości pod-
                   stawowej wynosiłaby 15, jednak ponieważ element <h1> znajduje się
                   w elemencie #container, wartość ta będzie wynosić 14,25 (150%
                   z 9,5). Obliczenia stają się coraz bardziej skomplikowane wraz z ko-
                   lejnymi poziomami zagnieżdżeń. Morał z tego jest taki, że podczas
                   deklarowania nowych wartości procentowych należy pamiętać o usta-
                   wionych już wartościach. Osobiście przy projektowaniu stron rzadko
                   stosuję zagnieżdżanie na więcej niż dwu poziomach. Dzięki zrozu-
                   mieniu tego, w jaki sposób zagnieżdżanie wpływa na wielkość war-
                   tości procentowych, możemy uniknąć rozczarowania, gdy uzyskane
                   wielkości tekstu różnią się od zamierzonych.


                   SPÓJNOŚĆ DZIĘKI WARTOŚCIOM
                   PROCENTOWYM
                   Eksperymentowanie z wartościami procentowymi może prowadzić
                   do bardziej spójnego wyglądu strony wyświetlanego w różnych prze-
                   glądarkach na różnych platformach. Przy stosowaniu wartości pro-
                   centowych dobrze jest poeksperymentować z różnymi wartościami,
                   zwłaszcza jeśli stosujemy małe wielkości czcionki. Testy możemy wy-
                   konywać przy założeniu, że większość internautów przegląda strony,
                   mając w przeglądarce włączony domyślny rozmiar tekstu (chociaż
                   założenie to jest błędne — użytkownik może zmienić domyślne
                   ustawienia).

                   Przykładowy test przeprowadzimy na używanej już wcześniej klasie
                   note. Możemy porównać wielkość tekstu dla wartości 85% i 90% we
                   właściwości font-size. Niektóre przeglądarki rozróżniają wartości
                   procentowe będące wielokrotnością liczby 10 (70, 80, 90 itp.), a inne
                   rozróżniają bardziej specyficzne wartości, które kończą się cyfrą 5
                   (75, 85, 95 itp.).

                   Porównajmy strony widoczne na rysunkach 1.12 oraz 1.13. Po lewej
                   widoczne są strony wyświetlone w przeglądarce Safari, a po prawej
                   strony wyświetlone w przeglądarce IE6/Win. W przeglądarce IE6/Win
                   różnica pomiędzy wielkością 85% (na górze) i 90% (na dole) jest
                   prawie niezauważalna. Natomiast w przeglądarce Safari widać
                   znaczną różnicę. W tym szczególnym przypadku sugerowałbym uży-
                   cie wielkości 90%, ponieważ wielkość tekstu dwóch popularnych
                   przeglądarek prawie się nie różni.
Elastyczny tekst   35




Rysunek 1.12. Porównanie wielkości tekstu klasy note
w przeglądarce Safari z tym samym tekstem w przeglądarce
IE6/Win. Wielkość tekstu została zmniejszona do 85%




Rysunek 1.13. Porównanie wielkości tekstu klasy note
w przeglądarce Safari z tym samym tekstem w przeglądarce
IE6/Win. Wielkość tekstu została zmniejszona do 90%

Może dzielimy tutaj włos na czworo, ale zachęcamy do eksperymen-
towania podczas dobierania różnych wartości procentowych dla wła-
ściwości font-size. Zmiana wartości o 5% może prowadzić do
pojawienia się zauważalnej różnicy wielkości, która może wpłynąć
na spójność wyglądu projektu w różnych przeglądarkach.



Podsumowanie
Najważniejszą informacją, jaką należy zapamiętać po przeczytaniu
tego rozdziału jest to, że użytkownikowi należy umożliwić zmianę
rozmiaru tekstu. Podzieliłem się swoimi rozwiązaniami, wykorzy-
stującymi słowa kluczowe oraz wartości procentowe. Jednak każda
strona internetowa jest inna i ma swoje własne wymagania. Najle-
piej by było, gdybyśmy we wszystkich tworzonych projektach mogli
uwzględnić opisaną w tym rozdziale elastyczność.

Poniżej zamieściłem kilka uwag wartych zapamiętania.

    Użytkownicy IE/Win nie mogą zmieniać wielkości tekstu, gdy jego
    rozmiar zdefiniowany jest w jednostkach pikselowych.

    Stosowanie słów kluczowych to łatwa, zrozumiała metoda de-
    finiowania wielkości czcionki, która umożliwia zmianę rozmiaru
    tekstu przez użytkownika.
36   Rozdział 1.


                       Stosowanie wartości procentowych ułatwia szybką zmianę wiel-
                       kości całego tekstu strony poprzez zmianę jednej deklaracji lub
                       użycie zdefiniowanego przez użytkownika arkusza stylów.

                       Stosowanie wartości procentowych w połączeniu ze słowami
                       kluczowymi daje możliwość bardziej precyzyjnego określenia
                       wielkości.

                   Dobra wiadomość jest taka, że rozdział ten jest chyba najmniej inte-
                   resujący z całej książki. Jednak jest on solidną — a raczej elastyczną
                   — podstawą dla wszystkich kolejnych przykładów. W dalszych roz-
                   działach przyjmuję założenie, że użytkownik może skalować tekst na
                   stronie w dowolnym kierunku. Z taką wiedzą możemy zacząć w kre-
                   atywny sposób stosować style CSS i przebudować wiele tradycyj-
                   nych komponentów stron tak, by stały się elastyczne.

More Related Content

What's hot (11)

JavaScript dla każdego. Wydanie IV
JavaScript dla każdego. Wydanie IVJavaScript dla każdego. Wydanie IV
JavaScript dla każdego. Wydanie IV
 
JBuilder. Vademecum profesjonalisty
JBuilder. Vademecum profesjonalistyJBuilder. Vademecum profesjonalisty
JBuilder. Vademecum profesjonalisty
 
ABC tworzenia stron WWW. Wydanie II
ABC tworzenia stron WWW. Wydanie IIABC tworzenia stron WWW. Wydanie II
ABC tworzenia stron WWW. Wydanie II
 
JavaScript. Projekty
JavaScript. ProjektyJavaScript. Projekty
JavaScript. Projekty
 
100 sposobów na Flash
100 sposobów na Flash100 sposobów na Flash
100 sposobów na Flash
 
JavaScript dla każdego
JavaScript dla każdegoJavaScript dla każdego
JavaScript dla każdego
 
ABC tworzenia stron WWW
ABC tworzenia stron WWWABC tworzenia stron WWW
ABC tworzenia stron WWW
 
Po prostu CorelDRAW 11
Po prostu CorelDRAW 11Po prostu CorelDRAW 11
Po prostu CorelDRAW 11
 
Dreamweaver MX
Dreamweaver MXDreamweaver MX
Dreamweaver MX
 
HTML, XHTML i CSS. Biblia
HTML, XHTML i CSS. BibliaHTML, XHTML i CSS. Biblia
HTML, XHTML i CSS. Biblia
 
HTML i XHTML dla każdego
HTML i XHTML dla każdegoHTML i XHTML dla każdego
HTML i XHTML dla każdego
 

Similar to Kuloodporne strony internetowe. Jak poprawić elastyczność z wykorzystaniem XHTML-a i CSS

Kurs tworzenia stron internetowych
Kurs tworzenia stron internetowychKurs tworzenia stron internetowych
Kurs tworzenia stron internetowychWydawnictwo Helion
 
Tworzenie stron WWW w praktyce. Wydanie II
Tworzenie stron WWW w praktyce. Wydanie IITworzenie stron WWW w praktyce. Wydanie II
Tworzenie stron WWW w praktyce. Wydanie IIWydawnictwo Helion
 
FrontPage 2003 PL. Nie tylko dla webmasterów
FrontPage 2003 PL. Nie tylko dla webmasterówFrontPage 2003 PL. Nie tylko dla webmasterów
FrontPage 2003 PL. Nie tylko dla webmasterówWydawnictwo Helion
 
RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on Rails
RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on RailsRailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on Rails
RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on RailsWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
Pajączek 5 NxG. Ćwiczenia praktyczne
Pajączek 5 NxG. Ćwiczenia praktycznePajączek 5 NxG. Ćwiczenia praktyczne
Pajączek 5 NxG. Ćwiczenia praktyczneWydawnictwo Helion
 
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWWHTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWWWydawnictwo Helion
 
Tworzenie stron WWW w praktyce
Tworzenie stron WWW w praktyceTworzenie stron WWW w praktyce
Tworzenie stron WWW w praktyceWydawnictwo Helion
 
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarkaWitryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarkaWydawnictwo Helion
 
Adobe Dreamweaver CS3/CS3 PL. Oficjalny podręcznik
Adobe Dreamweaver CS3/CS3 PL. Oficjalny podręcznikAdobe Dreamweaver CS3/CS3 PL. Oficjalny podręcznik
Adobe Dreamweaver CS3/CS3 PL. Oficjalny podręcznikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...
Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...
Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...Wydawnictwo Helion
 

Similar to Kuloodporne strony internetowe. Jak poprawić elastyczność z wykorzystaniem XHTML-a i CSS (20)

Tworzenie stron WWW. Kurs
Tworzenie stron WWW. KursTworzenie stron WWW. Kurs
Tworzenie stron WWW. Kurs
 
Kurs tworzenia stron internetowych
Kurs tworzenia stron internetowychKurs tworzenia stron internetowych
Kurs tworzenia stron internetowych
 
Tworzenie stron WWW w praktyce. Wydanie II
Tworzenie stron WWW w praktyce. Wydanie IITworzenie stron WWW w praktyce. Wydanie II
Tworzenie stron WWW w praktyce. Wydanie II
 
FrontPage 2003 PL. Nie tylko dla webmasterów
FrontPage 2003 PL. Nie tylko dla webmasterówFrontPage 2003 PL. Nie tylko dla webmasterów
FrontPage 2003 PL. Nie tylko dla webmasterów
 
Po prostu HTML 4. Wydanie III
Po prostu HTML 4. Wydanie IIIPo prostu HTML 4. Wydanie III
Po prostu HTML 4. Wydanie III
 
RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on Rails
RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on RailsRailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on Rails
RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on Rails
 
Po prostu FrontPage 2003 PL
Po prostu FrontPage 2003 PLPo prostu FrontPage 2003 PL
Po prostu FrontPage 2003 PL
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
Pajączek 5 NxG. Ćwiczenia praktyczne
Pajączek 5 NxG. Ćwiczenia praktycznePajączek 5 NxG. Ćwiczenia praktyczne
Pajączek 5 NxG. Ćwiczenia praktyczne
 
JavaScript i DHTML. Receptury
JavaScript i DHTML. RecepturyJavaScript i DHTML. Receptury
JavaScript i DHTML. Receptury
 
Java. Rozmówki
Java. RozmówkiJava. Rozmówki
Java. Rozmówki
 
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWWHTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
 
Tworzenie stron WWW w praktyce
Tworzenie stron WWW w praktyceTworzenie stron WWW w praktyce
Tworzenie stron WWW w praktyce
 
SolidWorks 2006 w praktyce
SolidWorks 2006 w praktyceSolidWorks 2006 w praktyce
SolidWorks 2006 w praktyce
 
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarkaWitryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarka
 
Adobe Dreamweaver CS3/CS3 PL. Oficjalny podręcznik
Adobe Dreamweaver CS3/CS3 PL. Oficjalny podręcznikAdobe Dreamweaver CS3/CS3 PL. Oficjalny podręcznik
Adobe Dreamweaver CS3/CS3 PL. Oficjalny podręcznik
 
Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...
Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...
Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...
 
ABC języka HTML i XHTML
ABC języka HTML i XHTMLABC języka HTML i XHTML
ABC języka HTML i XHTML
 
Po prostu Flash MX
Po prostu Flash MXPo prostu Flash MX
Po prostu Flash MX
 
Po prostu Flash MX
Po prostu Flash MXPo prostu Flash MX
Po prostu Flash MX
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieWydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 

Kuloodporne strony internetowe. Jak poprawić elastyczność z wykorzystaniem XHTML-a i CSS

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ Kuloodporne strony internetowe. SPIS TREŒCI Jak poprawiæ elastycznoœæ z wykorzystaniem XHTML-a i CSS KATALOG KSI¥¯EK Autor: Dan Cederholm T³umaczenie: Agata Bulandra KATALOG ONLINE ISBN: 83-246-0316-6 Tytu³ orygina³u: Bulletproof Web Design: Improving flexibility ZAMÓW DRUKOWANY KATALOG and protecting against worst-case scenarios with XHTML and CSS Format: B5, stron: 280 TWÓJ KOSZYK Poznaj tajniki projektowania doskona³ych stron internetowych DODAJ DO KOSZYKA • Wykorzystaj mo¿liwoœci jêzyka XHTML • Zastosuj standardy CSS • Zapewnij poprawne dzia³anie strony w ró¿nych przegl¹darkach CENNIK I INFORMACJE W coraz dynamiczniej rozwijaj¹cym siê internecie mo¿na znaleŸæ setki tysiêcy witryn WWW. Wiele z nich to prawdziwe pere³ki — zarówno pod wzglêdem projektowym, ZAMÓW INFORMACJE jak i merytorycznym. Ile razy jednak, otwieraj¹c ulubion¹ witrynê WWW w innej O NOWOŒCIACH przegl¹darce ni¿ dotychczas, widzimy coœ zupe³nie odmiennego? Jak czêsto projektuj¹c witrynê WWW, borykamy siê z ró¿nymi interpretacjami standardów ZAMÓW CENNIK w ró¿nych przegl¹darkach? Ile czasu trwa wzbogacanie strony o nowe elementy czy te¿ modernizacja uk³adu graficznego? Ilu projektantów stron WWW zastanawia siê, CZYTELNIA jak poprawiæ elastycznoœæ i uniwersalnoœæ swoich dzie³? Dziêki wiadomoœciom zawartym w ksi¹¿ce „Kuloodporne strony internetowe. FRAGMENTY KSI¥¯EK ONLINE Jak poprawiæ elastycznoœæ z wykorzystaniem XHTML-a i CSS” dowiesz siê, jak tworzyæ niemal doskona³e witryny WWW. Doskona³e — poniewa¿ wygl¹daj¹ równie dobrze w ka¿dej przegl¹darce i przy ka¿dej rozdzielczoœci ekranu. Poza tym s¹ ³atwe w nawigacji i proste w rozbudowie. Nauczysz siê korzystaæ z najnowszych standardów — XHTML i CSS, odpowiednio dobieraæ czcionki i ich rozmiary, pozycjonowaæ elementy strony i budowaæ uniwersalne mechanizmy nawigacyjne. Poznasz sposoby tworzenia kuloodpornych stron WWW. • Dobór rozmiaru czcionek • Skalowalne menu • Rozmieszczanie sk³adników strony • Definiowanie stylów dla ramek • Tworzenie uniwersalnych tabel Wydawnictwo Helion • Budowanie skaluj¹cego siê uk³adu strony ul. Chopina 6 44-100 Gliwice Jeœli wykorzystasz wiadomoœci z tej ksi¹¿ki, tworzone przez Ciebie strony WWW bêd¹ tel. (32)230-98-63 naprawdê uniwersalne. e-mail: helion@helion.pl
  • 2. Spis treści Wprowadzenie ............................................................................. 7 Rozdział 1. Elastyczny tekst .........................................................................13 Częste rozwiązanie .................................................................................... 15 Wszystkie możliwości ................................................................................ 17 Rozwiązanie kuloodporne ......................................................................... 19 Dlaczego rozwiązanie to jest kuloodporne ................................................ 25 Elastyczna baza — i co dalej? .................................................................... 25 Stosowanie słów kluczowych i wartości procentowych ............................. 30 Podsumowanie .......................................................................................... 35 Rozdział 2. Skalowalna nawigacja ...............................................................37 Częste rozwiązanie .................................................................................... 38 Dlaczego rozwiązanie to nie jest kuloodporne .......................................... 40 Rozwiązanie kuloodporne ......................................................................... 42 Dlaczego rozwiązanie to jest kuloodporne ................................................ 52 Dodatkowe przykłady ................................................................................ 53 Podsumowanie .......................................................................................... 56 Rozdział 3. Elastyczne wiersze .....................................................................59 Częste rozwiązanie .................................................................................... 60 Dlaczego rozwiązanie to nie jest kuloodporne .......................................... 62 Rozwiązanie kuloodporne ......................................................................... 64 Dlaczego rozwiązanie to jest kuloodporne ................................................ 77 Inny przykład rozciągania .......................................................................... 78 Podsumowanie .......................................................................................... 83 Rozdział 4. Pomysłowe rozmieszczanie elementów .......................................85 Częste rozwiązanie .................................................................................... 87 Dlaczego rozwiązanie to nie jest kuloodporne .......................................... 88 Rozwiązanie kuloodporne ......................................................................... 89 Dlaczego rozwiązanie to jest kuloodporne .............................................. 119 Podsumowanie ........................................................................................ 119
  • 3. 6 Spis treści Rozdział 5. Niezniszczalne ramki ............................................................... 121 Częste rozwiązanie .................................................................................. 122 Dlaczego rozwiązanie to nie jest kuloodporne ........................................ 124 Rozwiązanie kuloodporne ....................................................................... 125 Dlaczego rozwiązanie to jest kuloodporne .............................................. 131 Inne techniki tworzenia zaokrąglonych krawędzi ...................................... 132 Podsumowanie ....................................................................................... 140 Rozdział 6. Brak rysunków? Brak CSS? Brak problemów .......................... 143 Częste rozwiązanie .................................................................................. 144 Dlaczego rozwiązanie to nie jest kuloodporne ........................................ 147 Rozwiązanie kuloodporne ....................................................................... 148 Dlaczego rozwiązanie to jest kuloodporne .............................................. 150 Ze stylami lub bez ................................................................................... 152 Kuloodporne narzędzia ........................................................................... 157 Podsumowanie ....................................................................................... 164 Rozdział 7. Konwersja tabel ...................................................................... 167 Częste rozwiązanie .................................................................................. 168 Dlaczego rozwiązanie to nie jest kuloodporne ........................................ 170 Rozwiązanie kuloodporne ....................................................................... 171 Dlaczego rozwiązanie to jest kuloodporne .............................................. 191 Podsumowanie ....................................................................................... 192 Rozdział 8. Płynny układ stron .................................................................. 195 Częste rozwiązanie .................................................................................. 196 Dlaczego rozwiązanie to nie jest kuloodporne ........................................ 199 Rozwiązanie kuloodporne ....................................................................... 201 Dlaczego rozwiązanie to jest kuloodporne .............................................. 233 Podsumowanie ....................................................................................... 234 Rozdział 9. Łączenie w całość .................................................................... 235 Cel ........................................................................................................... 236 Dlaczego rozwiązanie to jest kuloodporne .............................................. 237 Konstrukcja ............................................................................................. 242 Modyfikacja stylów ze względu na przeglądarkę IE ................................. 268 Podsumowanie ....................................................................................... 272 Skorowidz ................................................................................ 273
  • 5. 14 Rozdział 1. Rozmiar tekstu ustal przy użyciu słów kluczowych oraz wartości procentowych, dzięki czemu użytkownicy będą mieli nad nim kontrolę. Niewiele zagadnień dotyczących projektowania stron internetowych jest tak kontrowersyjnych, jak zmiana rozmiaru tekstu. Temat ten zawsze był kłopotliwy dla początkujących, wywoływał dyskusje oraz dzielił narody. Może trochę wyolbrzymiam problem, ale faktycznie wiele osób może się do niego niechętnie odnosić. Nie jesteśmy w stanie uwolnić świata od problemu zmiany wielkości wyświetlanego na stronie tekstu. W tym rozdziale pokażę jednak strategię definiowania rozmiaru tekstu, która jest elastyczna i łatwa do zaimplementowania, a jednocześnie pozwala projektantom za- chować pełną kontrolę nad wyglądem stron. Wszystkie przykłady w tej książce łączy jedna wspólna cecha — ela- styczne dopasowanie się projektu do tekstu każdej wielkości. Umoż- liwiając użytkownikowi kontrolę nad rozmiarem tekstu, zwiększamy czytelność strony dla wszystkich internautów. Prawdziwe wyzwanie stanowi zbudowanie strony internetowej, w której ta elastyczność połączona jest z pomysłowym projektem graficznym. Poprzez zapo- znanie się z wszystkimi zamieszczonymi w tej książce przykładami, zyskamy solidne podstawy, by sprostać temu wyzwaniu. Przyglądając się często stosowanemu rozwiązaniu projektowemu, dowiemy się, dlaczego tak ważna jest możliwość zmiany wielkości tekstu oraz dlaczego zaprezentowane przykładowe rozwiązanie nie jest elastyczne. Rozdział 1. Elastyczny tekst
  • 6. Elastyczny tekst 15 Częste rozwiązanie Często stosowany sposób definiowania wielkości tekstu prześledzimy na przykładzie witryny eyeglasses.com — z pewnością odwiedzające tę stronę osoby z wadami wzroku ucieszyłyby się z możliwości sterowa- nia wielkością tekstu oraz z ogólnej czytelności strony (rysunek 1.1). Rysunek 1.1. Często stosowany sposób definiowania rozmiaru tekstu na przykładzie witryny eyeglasses.com Witryna eyeglasses.com jest przykładem bardzo dobrego wykorzy- stania kaskadowych arkuszy stylów. Tak jak w wielu innych ładnie zaprojektowanych stronach internetowych, podstawowa wielkość tekstu określona jest w jednostkach pikselowych poprzez zdefinio- wanie wartości dla właściwości font-size w deklaracji stylu dla elementu <body>:
  • 7. 16 Rozdział 1. body { font-size: 11px; } Poprzez ustawienie wielkości czcionki dla elementu <body> (w na- szym przykładzie 11px) projektanci strony definiują, że wyświetlony Chcieliśmy zaznaczyć, na stronie tekst będzie miał wysokość 11 pikseli (chyba że dla jakie- że nie uważamy strony goś fragmentu zostanie określona inna wartość). Zaletą określania eyeglasses.com za zły pro- rozmiaru tekstu w pikselach jest to, że wielkość czcionki pozostaje jekt. Jest to ładnie zapro- bez zmian niezależnie od tego, w jakiej przeglądarce lub urządzeniu jektowana witryna interne- wyświetlany jest tekst. Stosowanie wartości pikselowych stało się towa, utworzona przy popularne właśnie ze względu na ich konsekwentną, przewidywalną użyciu strukturalnego kodu wielkość. Projektant, chcąc precyzyjnie zdefiniować wielkość tekstu oraz stylów CSS. Właśnie wyświetlanego na stronie, zawsze chętniej użyje wartości pikselo- dlatego wybraliśmy ją jako wych niż innych jednostek. Jednak istnieje pewien mały problem. nasz przykład. Tak na- prawdę potrzebny był nam pretekst do omówienia róż- DLACZEGO TO ROZWIĄZANIE nych sposobów definiowa- NIE JEST KULOODPORNE nia wielkości tekstu oraz wad i zalet najczęściej Definiowanie rozmiaru tekstu w wartościach pikselowych daje pro- stosowanej metody. jektantowi kontrolę nad wielkością czcionki. Niestety, wartości pikselowe stwarzają kłopoty użytkownikom najbardziej popularnej przeglądarki internetowej (Internet Explorer w systemie Windows — IE/Win). Przeglądarki internetowe zwykle umożliwiają użytkownikowi kon- trolowanie rozmiaru tekstu poprzez zmianę rozmiaru określonego przez projektanta. Funkcja ta jest bardzo przydatna dla osób z wa- dami wzroku. Gdy użytkownik chce poprawić czytelność strony, wy- starczy że z menu przeglądarki wybierze większy rozmiar tekstu (ry- sunek 1.2). Czyż nie jest to wspaniałe? Istnieje jednak pewien haczyk. Jeśli sto- sowane są wartości pikselowe, użytkownicy przeglądarki Internet Rysunek 1.2. Dzięki menu Explorer nie mają możliwości zmiany rozmiaru tekstu na inny niż Widok/Rozmiar tekstu określony przez projektanta. Tak więc korzystanie z wartości pikse- w IE6/Win użytkownik lowych daje projektantowi największą precyzję przy ustalaniu wielkości może dostosować rozmiar czcionki, ale jednocześnie uniemożliwia użytkownikom przeglądarki tekstu wyświetlanego na stronie IE/Win dostosowywanie rozmiaru tekstu do własnych potrzeb. Użyt- kownicy innych przeglądarek mogą zmieniać rozmiar czcionki bez względu na to, w jaki sposób jest on zdefiniowany. Możliwość dostosowania rozmiaru tekstu jest niezbędna dla osób z wadami wzroku. Będzie ona także mile widziana przez wszyst- kich chcących zwiększyć czytelność stron internetowych, na których
  • 8. Elastyczny tekst 17 domyślnie zastosowano małe czcionki. W naturze wszystkich projek- tantów leży chęć pełnej kontroli nad wyglądem całej witryny. Rezy- gnując tylko z odrobiny tej kontroli w zakresie definiowania rozmiaru tekstu, poprawiamy odbiór witryny przez internautów oraz zwięk- szamy jej dostępność. Z technicznego punktu wi- Wróćmy do braku możliwości zmiany wielkości tekstu, którego roz- dzenia piksel to względna miar czcionki został zdefiniowany przy użyciu wartości pikselowych. jednostka miary, która za- Być może twórcy przeglądarki chcieli pozostać wierni idei, że piksel leży od rozdzielczości urzą- to piksel —jednostka, która nigdy się nie zmienia, nawet wtedy, gdy dzenia, na którym jest wy- użytkownik by tego chciał (a przecież ma do tego prawo). Mimo to świetlana bądź drukowana. wszystkie inne przeglądarki działają w sposób poprawny i umożli- Na przykład rzeczywista wiają użytkownikowi zmianę wielkości tekstu, którego rozmiar zo- wielkość piksela wyświe- stał określony w jednostkach pikselowych. tlanego na monitorze różni się od wielkości piksela Wszystko byłoby prostsze, gdyby projektanci mogli definiować roz- wydrukowanego. miar czcionki w wartościach pikselowych, a użytkownicy mogli do- Więcej informacji na ten stosować go zgodnie ze swoimi wymaganiami. Jednak nie ma moż- temat można znaleźć na liwości skalowania tekstu w IE/Win, dlatego rozwiązanie to nie jest stronie www.w3.org/ optymalne. Poznajmy więc inne sposoby definiowania rozmiaru tek- TR/REC-CSS2/syndata. stu. Na koniec ustalimy rozwiązanie, w którym zrezygnujemy z pre- html#pixel-units. cyzji zapewnianej przez wartości pikselowe, ale które będzie posia- dało ważną zaletę — skalowalność we wszystkich przeglądarkach. Wszystkie możliwości Oprócz stosowania wartości pikselowych istnieje kilkanaście innych metod definiowania rozmiaru tekstu przy użyciu stylów CSS — warto znać wszystkie. Jednostki, które stosujemy, podając wartość dla właściwości font- size w arkuszu CSS, można podzielić na cztery grupy. JEDNOSTKI DŁUGOŚCI Jednostki długości mogą być względne lub bezwzględne. Do względ- nych jednostek zaliczamy: em — określenie wielkości względem rozmiaru czcionki elementu nadrzędnego (rodzica), ex — określenie wielkości względem wysokości litery x danej czcionki, px — określenie wielkości względem rozdzielczości urządzenia (najczęściej stosowana jednostka).
  • 9. 18 Rozdział 1. Bezwzględne jednostki długości używane są przede wszystkim w druku, jednak stosuje się je także wtedy, gdy znane są fizyczne wymiary i właściwości przeglądarki lub urządzenia: in — cale (ang. inches), cm — centymetry, mm — milimetry, pt — punkty, pc — pica. SŁOWA KLUCZOWE — WZGLĘDNE Jeśli chcemy określić względny rozmiar tekstu przy użyciu słów klu- czowych, do wyboru mamy tylko dwa słowa: larger, smaller. W ten sposób określimy wielkość czcionki względem aktualnej wiel- kości czcionki elementu rodzica. Konsorcjum W3C (ang. World Wide Web Consortium) — organizacja zajmująca się standaryzacją inter- netu — wyjaśnia, że jeśli wielkość czcionki elementu rodzica okre- ślono za pomocą słowa kluczowego medium, użycie słowa kluczo- wego larger zwiększy rozmiar czcionki bieżącego elementu do wielkości large. Więcej informacji na ten temat można znaleźć pod adresem www.w3.org/TR/CSS21/fonts.html#font-size-props. O tych wartościach należy myśleć jak o odpowiednikach elementów <small> i <big> z języka HTML. Określają one zmianę wielkości tek- stu względem wielkości zdefiniowanej gdzieś wyżej w drzewie do- kumentu. PROCENTY Wartości procentowe określają rozmiar tekstu względem rozmiaru tekstu elementu zawierającego bieżący element (elementu rodzica). Użycie wartości 120% zwiększy uprzednio zdefiniowaną wielkość o 20%, bez względu na to, jaka jednostka była stosowana (jeżeli ja- kakolwiek była stosowana). W naszym kuloodpornym rozwiązaniu do określenia wielkości tekstu wykorzystamy procenty w połączeniu ze słowami kluczowymi.
  • 10. Elastyczny tekst 19 SŁOWA KLUCZOWE — BEZWZGLĘDNE Słowa kluczowe definiujące rozmiar w sposób bezwzględny korzy- stają z tabeli rozmiarów czcionek przeglądarki lub urządzenia. Oto siedem możliwych wielkości: xx-small, x-small, small, medium, large, x-large, xx-large. Konsorcjum W3C sugeruje twórcom przeglądarek, by współczynnik skalowania pomiędzy poszczególnymi słowami kluczowymi wynosił 1,5 oraz zaleca, by skala pozostała bez zmian, bez względu na fi- zyczną wielkość tekstu po wyświetleniu. Czyli mówiąc prostym języ- kiem — wielkość large jest półtora raza większa od wartości medium, a wielkość small jest półtora raza mniejsza od wielkości medium. Prosta składnia to tylko jedna z wielu zalet stosowania bezwzględ- nych słów kluczowych, które bardziej szczegółowo omówimy w na- stępnym podrozdziale. Znamy już wszystkie jednostki, które można stosować we właści- wości font-size, dlatego możemy przejść do omówienia strategii, która zapewni elastyczną podstawę i da użytkownikom możliwość sterowania wielkością tekstu. Rozwiązanie kuloodporne Podzielę się teraz rozwiązaniem, które skutecznie stosuję we wła- snych projektach, łącząc bezwzględne słowa kluczowe z wartościami procentowymi. Użycie słów kluczowych przy definiowaniu wielkości tekstu we właściwości font-size rozwiązuje problem pokazany wcześniej na przykładzie witryny eyeglasses.com (dotyczący milio- nów stron). Gdy nie są stosowane wartości pikselowe, wszystkie przeglądarki i urządzenia potrafią zmienić rozmiar wyświetlanego na stronie tekstu. Przyjrzyjmy się, w jaki sposób należy stosować słowa kluczowe.
  • 11. 20 Rozdział 1. SŁOWA KLUCZOWE — WYJAŚNIENIE Jak już wcześniej wspomniałem, rozmiar czcionki możemy określić przy użyciu siedmiu słów kluczowych: xx-small, x-small, small, medium, large, x-large, xx-large. Oto przykład, w jaki sposób możemy użyć jednej z tych wartości, aby ustawić wielkość czcionki dla elementu <body>: body { font-size: small; } Słowo kluczowe definiuje rozmiar tekstu w zależności od ustawień przeglądarki. Innymi słowy, jeżeli użytkownik ustawił w opcjach przeglądarki wyświetlanie tekstu większego lub mniejszego od war- tości domyślnej, to słowo kluczowe definiuje wielkość tekstu według ustawionego w taki sposób rozmiaru podstawowego. Współczynnik skalowania pomiędzy poszczególnymi słowami kluczowymi pozo- staje stały, bez względu na to, jaką wielkość podstawową ustalono. Na rysunku 1.3 każde słowo kluczowe napisane jest tekstem innej wielkości. Skala wielkości zależy od ustawionego w przeglądarce domyślnego rozmiaru czcionki. Do wykonania zrzutów użyłem prze- glądarki Internet Explorer. Rysunek 1.3. Porównanie wielkości tekstu uzyskiwanej dzięki różnym słowom kluczowym. Na rysunku po prawej widoczna jest ta sama strona po zwiększeniu w przeglądarce rozmiaru tekstu
  • 12. Elastyczny tekst 21 Jak widać, słowo small ma różną wielkość w zależności od ustawionej w przeglądarce wielkości podstawowej. Jednak różnica pomiędzy wielkością small a kolejną wartością w górę lub w dół jest stała. REZYGNACJA Z PIKSELOWEJ PRECYZJI Największą trudnością do przezwyciężenia dla każdego projektanta korzystającego ze słów kluczowych (lub innych jednostek niebędą- cych wartościami pikselowymi) jest to, że tekst może mieć odrobinę różną wielkość w zależności od przeglądarki, systemu operacyjnego oraz indywidualnych ustawień. Przykładowa wielkość small może być różna, gdy tekst jest wyświe- tlany w różnych przeglądarkach na różnych systemach operacyjnych, nawet jeśli we wszystkich przeglądarkach domyślnie jest ustawiony średni rozmiar czcionki. Zasadę piksel to piksel można uznać za prawo ogólnie obowiązujące w internecie. Jednak słowa kluczowe to tylko wskazówki dla prze- glądarki w kwestii tego, jak duży lub mały ma być wyświetlany tekst. Projekty (i ich użytkownicy) mogą wiele zyskać, jeśli ich autor jest w stanie zaakceptować takie małe wariacje wielkości, wynikające ze stosowania słów kluczowych, które zwiększają elastyczność projektu. DWIE PRZESZKODY DO POKONANIA W dalszej części tego rozdziału przedstawię kilka rozwiązań, mówią- cych w jaki sposób można uniknąć tych drobnych różnic wielkości tekstu w różnych przeglądarkach, gdy rozmiar czcionki został zdefi- niowany przy użyciu słów kluczowych. Jednak najpierw muszę omó- wić dwie ważne rozbieżności występujące w przeglądarkach Netscape 4.x oraz IE5. NETSCAPE 4.X Nawet przy domyślnych ustawieniach (średni rozmiar tekstu), prze- glądarka Netscape 4 ma tendencję do wyświetlania tekstu tak małe- go, że nie jest on czytelny na ekranie. Ze względu na niebezpieczeń- stwo, iż nasz tekst będzie całkowicie nieczytelny, gdy korzystamy ze stylów CSS do ustawienia wielkości tekstu na stronach wyświetla- nych w przeglądarce Netscape 4.x, lepiej nie stosować słów klu- czowych. Informacje wyjaśniające dlaczego nie jest to wskazane rozwiązanie można znaleźć na stronie www.alistapart.com/articles/ sizematters. Jednak nie będziemy się zbytnio przejmować kłopotami
  • 13. 22 Rozdział 1. związanymi z przeglądarką Netscape 4.x, ponieważ w naszych przy- kładach i tak zawsze będziemy ukrywać style przed tą starą aplika- cją. Mamy więc jedną przeszkodę mniej. IE5 DLA WINDOWS Druga przeszkoda jest trochę bardziej skomplikowana, ponieważ nie ma możliwości całkowitego ukrycia stylów przed przeglądarką IE5/Win (a przeglądarka ta mimo wszystko nadal cieszy się ogrom- nym powodzeniem — przynajmniej w czasie pisania tej książki). Prze- szkoda ta wygląda na oczywistą pomyłkę programistów, którzy stwo- rzyli IE5/Win. Z powodów znanych tylko firmie Microsoft, w IE5 rozmiar tekstu, którego wielkość została zdefiniowana przy użyciu słów kluczowych jest o jeden stopień większy niż obowiązujące standardy przegląda- rek. Na przykład, jeśli zadeklarujemy body { font-size: small; } i wyświetlimy stronę przy domyślnych ustawieniach przeglądarki, tekst w IE5/Win będzie miał taką samą wielkość, jak tekst o rozmiarze medium wyświetlony w innych przeglądarkach. W przeglądarce IE5/ Win zaprojektowane przez nas strony nie wyglądają tak, jak chcieli- śmy. Na rysunku 1.4 widoczna jest różnica wielkości tekstu (o roz- miarze small) w przeglądarkach IE5 i IE6. Rysunek 1.4. Porównanie to ilustruje, że tekst o rozmiarze small w przeglądarce IE5 jest o jeden stopień większy niż w przeglądarce IE6/Win oraz w innych powszechnie stosowanych przeglądarkach
  • 14. Elastyczny tekst 23 Aby ominąć ten problem i sprawić, by została zachowana jedna wielkość tekstu przy wyświetlaniu tej samej strony w różnych prze- glądarkach, zastosujemy pewną sztuczkę, dzięki której dla przeglą- darki IE5/Win można zastosować inną regułę CSS niż dla pozostałych przeglądarek. Dla stron wyświetlanych w IE5/Win zadeklarujemy (przy użyciu słów kluczowych) rozmiar tekstu o jeden stopień mniejszy niż dla pozostałych przeglądarek. SZTUCZKA DLA IE5/WIN Dla przeglądarki IE5/Win podamy rozmiar tekstu o jeden stopień mniejszych przy użyciu sztuczki wymyślonej przez Tanteka Çelika (Box Model Hack — www.tantek.com/CSS/Examples/boxmodelhack.html), która polega na tym, że oszukujemy IE5/Win, mówiąc, że deklaracja stylu CSS już się zakończyła. Dzięki tej sztuczce możemy właściwości font-size najpierw przypisać mniejszą wartość, która zostanie użyta w IE5/Win, a następnie nadpisać ją wartością przeznaczoną dla innych przeglądarek. Reguły CSS potrzebne do zadeklarowania rozmiaru small dla tekstu elementu <body> wyglądają następująco: body { font-size: x-small; /* dla IE5/Win */ voice-family: ""}""; voice-family: inherit; font-size: small; /* dla innych przeglądarek */ } html>body { /* bądźmy mili dla Opery */ font-size: small; } Jak widać w powyższym kodzie, podstawowy rozmiar czcionki usta- wiony został przy użyciu słowa kluczowego small. Jednak wcze- śniej, ze względu na przeglądarkę IE5/Win, deklarujemy wartość o jeden stopień niższą niż zamierzona, a następnie oszukujemy tę przeglądarkę, że deklaracja stylu została zakończona. Osiągamy to za pomocą następującej deklaracji: voice-family: ""}""; Tylko przeglądarka IE5/Win rozpoznaje ten nawias zamykający, który sugeruje, że deklaracja została zakończona. Dla wszystkich pozo- stałych przeglądarek wartość x-small nadpisujemy poprzez zade- klarowanie wartości small. Dzięki tak zdefiniowanym stylom CSS uzyskujemy w miarę jednolitą wielkość tekstu podstawowego we wszystkich przeglądarkach.
  • 15. 24 Rozdział 1. Możemy także omówić drugą deklarację, w której została powtórzo- na reguła font-size: small. Reguła ta — określana jako bądźmy mili dla Opery — powoduje, że Opera (oraz inne przeglądarki) na pewno nie zignoruje reguły, która znajduje się za sztucznym zakoń- czeniem deklaracji dla IE5. Jeśli korzystamy ze sztuczki Box Model Hack, zawsze powinniśmy umieścić tę deklarację. Dzięki niej wszystkie zgodne przeglądarki poprawnie nadadzą zadeklarowane style i będą mogły przejść do odczytywania następnej deklaracji w arkuszu stylów. UPROSZCZONA WERSJA SZTUCZKI BOX MODEL HACK Opracowana przez Edwardsona Tana uproszczona sztuczka Box Model Hack (SMBH — ang. Simplified Box Model Hack) umożliwia osiągnięcie tego samego efektu (podanie innych wartości dla prze- glądarki IE5/Win), przy mniejszej ilości kodu. Łatwiejsza do zrozu- mienia jest też chyba użyta w tej wersji składnia. Po zastosowaniu SMBH nasz poprzedni przykład wygląda następująco: body { font-size: small; } * html body { font-size: x-small; /* dla IE5/Win */ font-size: small; /* dla innych wersji IE */ } Arkusz rozpoczynamy od normalnej deklaracji stylów dla elementu <body> i umieszczamy w nim regułę deklarującą dla tekstu wielkość small. Następnie, używając selektora * html, wykorzystujemy dziurę w przeglądarce IE, która umożliwia zdefiniowanie deklaracji tylko dla przeglądarek IE. Przeglądarka IE5/Win ignoruje lewy ukośnik we własności font-size, co umożliwia nam zadeklarowanie wartości x-small dla IE5/Win i nadpisanie jej wartością small dla pozosta- łych wersji przeglądarki IE. W ten sposób uzyskujemy rezultat taki sam, jak w poprzednim przy- kładzie. Jednak składnia użyta w tym rozwiązaniu jest dużo bardziej zrozumiała. Bardziej szczegółowe informacje na temat sztuczki SBMH można znaleźć na stronie http://www.info.com.ph/~etan/w3pantheon/ style/modifiedsbmh.html. Oczywiście pojawiają się głosy, że stosowanie sztuczek typu Box Model Hack czy SBMH jest zbyt uciążliwe i nie warto ich stosować tylko po to, by poprawić rozmiar tekstu. Jeśli jednak zależy nam na
  • 16. Elastyczny tekst 25 spójnym wyglądzie strony we wszystkich przeglądarkach, warto za- płacić taką cenę. Istnieją metody strategicznego zbierania wszystkich trików CSS i umieszczania ich oddzielnie od schludnych i zgodnych arkuszy sty- Więcej informacji na temat lów. Kilka takich metod poznamy w rozdziale 9. stosowania słów kluczo- wych i wspomnianych tutaj sztuczek można znaleźć Dlaczego rozwiązanie w szczegółowym artykule Todda Fahrnera to jest kuloodporne w magazynie A List Apart (www.alistapart. Po pokonaniu wszystkich przeszkód mamy w kuloodporny sposób com/articles/sizematters). zdefiniowaną wielkość tekstu podstawowego. Zamiast deklarować Jeśli nie przeszkadza nam, rozmiar czcionki w pikselach (tak jak ma to miejsce w przypadku że w przeglądarce IE5/Win strony eyeglasses.com oraz wielu innych witryn), w deklaracji dla wyświetlany tekst jest o je- elementu <body> używamy słowa kluczowego small, aby ustawić den stopień większy, mo- domyślną wielkość tekstu na stronie. Dzięki stosowaniu słów klu- żemy z powodzeniem po- czowych, w każdej przeglądarce i urządzeniu (włącznie z IE/Win) bę- minąć opisane w tym dzie istniała możliwość zmiany rozmiaru tekstu przez użytkownika. podrozdziale przeszkody. Takie rozwiązanie jest niezbędne dla ludzi z wadą wzroku — i to nie Nie musimy ich pokony- tylko dla osób szukających nowych okularów, ale także dla osób wać, możemy je ominąć. szukających przepisów, robiących zakupy czy czytających artykuły w internecie. Mimo że ta mała zmiana okaże się prawie niezauważalna dla przeciętnego użytkownika strony, będzie ogromnym ułatwieniem dla tych, którzy dopiero po jej wprowadzeniu będą mogli z tej strony skorzystać. Elastyczna baza — i co dalej? Na razie dowiedzieliśmy się, w jaki sposób należy definiować roz- miar czcionki dla całej strony. Oczywiście chcemy, by niektóre ele- menty projektu wyróżniały się inną wielkością czcionki — na przy- kład nagłówki, listy, podpisy, nawigacja czy tabele. Tekst każdego z tych elementów potencjalnie może być innej wielkości niż pod- stawowy tekst na stronie. Jaki jest jednak najlepszy sposób deklaro- wania rozmiaru tekstu innych elementów (mniejszego lub większego od wielkości bazowej)? Polecam metodę, która okazała się dla mnie najlepszym rozwiąza- niem — jest zrozumiała i dzięki niej można łatwo modyfikować rozmiar istniejącego tekstu oraz dodawać nowe deklaracje, nawet już po opublikowaniu witryny.
  • 17. 26 Rozdział 1. USTAW I ZAPOMNIJ Podczas definiowania rozmiaru tekstu, tylko w jednym miejscu w na- szym arkuszu stylów użyjemy wartości bezwzględnej. Słowo kluczowe wielkości bezwzględnej zastosujemy tylko w deklaracji dla elementu Aby zachować spójność <body>, tak jak omawialiśmy to wcześniej w tym rozdziale: wyglądu w przeglądarce body { IE5/Win, tutaj także można font-size: small; skorzystać z opisywanej } wcześniej sztuczki Box Jak widać na rysunku 1.5, wielkość 12 pikseli można porównać z wiel- Model Hack. kością small. Oczywiście różnice te będą odrobinę inne w różnych przeglądarkach, ponieważ każdy program może mieć zdefiniowaną inną wielkość dla poszczególnych słów kluczowych. Jednak w więk- szości przypadków użycie słowa kluczowego small przy definiowa- niu podstawowego rozmiaru tekstu jest równoznaczne z ustawieniem wartości 12px (przy założeniu, że użytkownik nie zmienił domyśl- nych ustawień przeglądarki). Takie porównanie jest bardzo przydatne dla projektantów dopiero zaczynających stosować słowa kluczowe. Rysunek 1.5. Porównanie tekstu o wielkości 12px z tekstem, którego rozmiar ustawiono za pomocą słowa kluczowego small. Przy domyślnych ustawieniach przeglądarki (średni rozmiar tekstu) otrzymany wynik jest bardzo podobny PROCENTOWA ZMIANA WARTOŚCI BAZOWEJ Podstawową wielkość tekstu ustawioną za pomocą słowa kluczo- Rysunek 1.6. Przy użyciu wego small będziemy modyfikować, korzystając z wartości procen- procentów rozmiar towych. Stosowanie wartości procentowych jest prostą drogą do tekstu możemy zarówno wizualizacji pożądanego rozmiaru elementu. Na rysunku 1.6 mo- zwiększyć, jak i zmniejszyć w stosunku do podstawo- żemy zauważyć, jak wartości procentowe zwiększają lub zmniejszają wej wielkości rozmiar czcionki w stosunku do podstawowej wielkości tekstu.
  • 18. Elastyczny tekst 27 Jeśli na przykład chcemy, by element <h1> był odrobinę większy niż tekst o wielkości small, wystarczy zadeklarować: body { font-size: small; } h1 { font-size: 150%; } Elementy <h1> zawsze znajdują się wewnątrz elementu <body>, dlatego ich tekst na pewno będzie półtora raza większy niż tekst wielkości small (rysunek 1.7). Rysunek 1.7. Wielkość tekstu elementu <h1> została ustawiona na 150% wielkości small Podobnie, może być wskazane, by tekst niektórych akapitów był mniejszy niż podstawowy tekst strony, czyli w naszym przypadku miał wielkość mniejszą niż small. W tym celu tworzymy klasę note i dodajemy ją do krótkiego akapitu (rysunek 1.8). <p class="note">Akapit klasy „note”. Tekst tego akapitu jest mniejszy niż podstawowy tekst strony.</p>
  • 19. 28 Rozdział 1. Rysunek 1.8. Wielkość tekstu klasy note to 85% wartości wielkości ustawionej przez słowo kluczowe small (akapit klasy note został dodatkowo wyróżniony szarym kolorem) Tekst tego akapitu ma być nieznacznie mniejszy niż domyślna wiel- kość tekstu, dlatego dodajemy dla tej klasy deklarację, w której użyta jest wartość procentowa mniejsza niż 100%. .note { font-size: 85%; } Wartości procentowe możemy przypisać dowolnemu elementowi strony, by zwiększyć lub zmniejszyć wielkość jego tekstu w stosunku do wielkości tekstu elementu <body>. Uproszczony arkusz stylów, w którym rozmiar tekstu poszczegól- nych elementów określony jest przy użyciu wartości procentowych wygląda następująco: body { font-size: small; } h1 { font-size: 150%; }
  • 20. Elastyczny tekst 29 h2 { font-size: 130%; } h3 { font-size: 120%; } ul li { font-size: 90%; } .note { font-size: 85%; } Zadeklarowaliśmy stopniowo malejące wielkości dla trzech typów nagłówków, pomniejszyliśmy tekst listy wypunktowanej oraz utwo- rzyliśmy klasę note — możemy ją zastosować do każdego elementu, którego tekst ma być mniejszy od wielkości domyślnej. Jest to pod- stawowy przykład, jednak doskonale ilustruje on nasze dwuetapowe rozwiązanie — najpierw należy ustawić podstawową wielkość tek- stu przy użyciu słowa kluczowego, a następnie za pomocą war- tości procentowych zwiększyć lub zmniejszyć wielkość tekstu pozostałych elementów. Wystarczy zmienić wartość podstawową, a reszta rozmiarów dostosuje się samoistnie. Zaletą stosowania wartości podstawowych w połączeniu z warto- ściami procentowymi jest to, że w celu zmiany podstawowej wielko- ści tekstu wystarczy zmienić jedną regułę w deklaracji stylów dla elementu <body>. Wielkości pozostałych elementów, które zostały zdefiniowane przy użyciu wartości procentowych dostosowują się do zmiany wielkości podstawowej. Zmiana rozmiaru czcionki z war- tości small na large spowoduje zmianę wielkości tekstu wszyst- kich elementów. Rozwiązanie to jest bardzo poręczne, nawet jeśli w pewnym momencie zdecydujemy się na zdefiniowanie wielkości podstawowej w innych jednostkach. Z tych samych powodów rozwiązanie to doskonale się sprawdza w przypadku użytkowników, którzy lubią korzystać z własnych arkuszy stylów, nadpisujących wartości zdefiniowane w arkuszach strony internetowej. Wystarczy, że użytkownik zdefiniuje jedną regułę mo- dyfikującą podstawowy rozmiar tekstu, a rozmiar tekstu wszystkich elementów proporcjonalnie się zmieni.
  • 21. 30 Rozdział 1. Stosowanie słów kluczowych i wartości procentowych Aby pełniej wykorzystać zalety pracy ze słowami kluczowymi i war- tościami procentowymi, należy pamiętać o kilku kwestiach. Infor- macje zawarte w tym podrozdziale powinny pomóc we właściwym dostosowaniu wartości procentowych. Wspomnę także o kilku naj- ważniejszych aspektach, o których należy pamiętać przy zagnież- dżaniu wartości procentowych. USTAWIENIE POŚREDNIEJ WARTOŚCI BAZOWEJ Bardzo przydatna sztuczka polega na dostosowaniu wielkości tekstu przy użyciu słowa kluczowego i elementu <div>, w którym umieszcza się całą zawartość strony. Często przy tworzeniu projektów opartych na stylach CSS z różnych powodów stosuje się główny element <div> zawierający wszystkie pozostałe elementy (więcej informacji na ten temat można znaleźć w rozdziale 8.). Element ten możemy także wykorzystać, by przy użyciu wartości procentowych dostoso- wać do naszych wymagań wielkość tekstu zdefiniowaną słowami kluczowymi. Wyobraźmy sobie, że pracujemy z następującą strukturą: <body> <div id="container"> <h1>To jest tytuł</h1> <p>Tekst o domyślnej podstawowej wielkości.</p> </div> </body> Tak jak robiliśmy to we wcześniejszych przykładach, podstawową wielkość tekstu możemy ustawić przy użyciu słów kluczowych, a wiel- kość nagłówka <h1> możemy ustawić za pomocą wielkości procen- towych: body { font-size: small; } h1 { font-size: 150%; }
  • 22. Elastyczny tekst 31 Jeśli jednak stwierdzimy, że wartość small jest zbyt duża dla naszego projektu (gdy wyświetlamy stronę przy domyślnych ustawieniach przeglądarki), możemy ją zmienić na nieco mniejszą. Wystarczy przy użyciu procentów zadeklarować mniejszą wielkość dla obiektu o iden- tyfikatorze #container, w którym umieścimy wszystkie elementy tekstowe strony. body { font-size: small; } h1 { font-size: 150%; } #container { font-size: 95%; } Na rysunku 1.9 widać, że zmniejszyliśmy trochę domyślny rozmiar czcionki. Wprowadzone zmiany dotyczą także tytułu. Rysunek 1.9. Porównanie tekstu wielkości small (górna część) z tekstem zmniejszonym poprzez ustawienie dla zawierającego go pojemnika wielkości 95% (dolna część) Dla tekstu w dolnej części rysunku, który w kodzie znajduje się w elemencie <div> o identyfikatorze #container, dodaliśmy regułę font-size: 95%. Tekst w górnej części rysunku ma wielkość usta- wioną za pomocą słowa kluczowego small. Różnica w wyświetla- nej wielkości jest niewielka. Zaletą tego rozwiązania jest precyzyjne dostosowanie rozmiaru tek- stu wtedy, gdy chcemy uzyskać wielkość pośrednią między wielko- ściami nadawanymi przez dwa kolejne słowa kluczowe. Korzystając
  • 23. 32 Rozdział 1. z istniejącego elementu <div>, w którym znajdują się wszystkie elementy strony, możemy dowolnie zmieniać rozmiar tekstu i w ten sposób zdefiniować własny rozmiar podstawowy. Jednak najlepiej jest nie zagłębiać się zbytnio w szczegóły przy defi- niowaniu wielkości tekstu, ponieważ w różnych przeglądarkach i róż- nych systemach operacyjnych zawsze będą widoczne pewne różnice. Najważniejsze jest, że użytkownicy będą mieli możliwość zmiany wielkości tekstu przy użyciu narzędzi wbudowanych w przeglądarki. ZAGNIEŻDŻAJĄC PROCENTY, MUSIMY ZACHOWAĆ OSTROŻNOŚĆ Przy zagnieżdżaniu wartości procentowych należy zachować ostroż- ność. W poprzednim przykładzie podstawowa wielkość tekstu była zdefiniowana przy użyciu wartości small, a następnie została zmniej- szona do 95% oryginalnej wielkości poprzez dopisanie odpowiedniej deklaracji do pojemnika <div id="container">. Wszystko może się trochę skomplikować, gdy zaczniemy stosować wartości procen- towe do innych elementów znajdujących się wewnątrz elementu #container. Na przykład wcześniej zadeklarowaliśmy, że wielkość elementu <h1> będzie wynosić 150% wielkości podstawowej. Elementy <h1> znaj- dują się niżej w drzewie dokumentu — poniżej obiektu #conta- iner. Dlatego ich wielkość to nie 150% wielkości podstawowej, lecz 150% z wartości 95% z wielkości small. Na rysunku 1.10 przedsta- wiono zależność pomiędzy zagnieżdżaniem elementów w dokumen- cie a przypisanymi do nich wartościami procentowymi. Rysunek 1.10. Sposób wyliczania wartości procentowych w przypadku wielokrotnego zagnieżdżania elementów Faktycznie, możemy być trochę zdezorientowani. Być może pomocna będzie zamiana słowa kluczowego small na wartość numeryczną.
  • 24. Elastyczny tekst 33 Należy zachować szczególną ostrożność przy zagnieżdżaniu wartości procentowych mniejszych niż 100% — zmniejszenie przez użytkownika domyślnej wielkości tekstu w przeglądarce może spowodować, że tekst będzie zbyt mały i stanie się nieczytelny. Innymi słowy, jeżeli projektant przy tworzeniu strony sugerował się ustawieniami domyślnymi i użył małych wartości procentowych (takich, że przy ustawieniu średniego rozmiaru czcionki w przeglądarce tekst nadal był czytelny), możliwe jest, że strona będzie nieczytelna, gdy użytkownik wybierze w przeglą- darce mniejszy rozmiar czcionki. Czytelność tekstu na stronie należy przetestować przy różnych ustawieniach rozmiaru tekstu w różnych przeglądarkach, niezależnie od używanego połączenia słów kluczowych i procentów. Rada ta jest dobra bez względu na to, z jakiej metody ustawienia wielkości tekstu korzystamy. Bardzo ciekawy jest test Owena Briggsa, porównujący wielkości tekstu w różnych przeglądarkach, na różnych systemach i przy zastosowaniu różnych systemów definiowania rozmiarów tekstu (www.thenoodleincident.com/tutorials/box_lesson/font/method.html). Na stronie testu Briggs umieścił 264 zrzuty ekranowe, dzięki czemu w jednym miejscu można porównać wszystkie uzyskane wyniki (rysunek 1.11). Rysunek 1.11. Test Owena Briggsa dotyczący wyświetlanej wielkości tekstu to cenne źródło informacji, zawierające 264 zrzuty ekranowe, które przedstawiają prawie każdą możliwą kombinację ustawień
  • 25. 34 Rozdział 1. Jeżeli wielkość tekstu dla elementu <body> wynosi 10 (zamiast small), to wszystko wewnątrz elementu #container będzie miało wielkość 9,5 (czyli 95% z 10). Nagłówek <h1> znajduje się wewnątrz elementu #container, a rozmiar czcionki ustawiony dla tych na- główków wynosi 150%. Wartość 150% z pierwszej wielkości pod- stawowej wynosiłaby 15, jednak ponieważ element <h1> znajduje się w elemencie #container, wartość ta będzie wynosić 14,25 (150% z 9,5). Obliczenia stają się coraz bardziej skomplikowane wraz z ko- lejnymi poziomami zagnieżdżeń. Morał z tego jest taki, że podczas deklarowania nowych wartości procentowych należy pamiętać o usta- wionych już wartościach. Osobiście przy projektowaniu stron rzadko stosuję zagnieżdżanie na więcej niż dwu poziomach. Dzięki zrozu- mieniu tego, w jaki sposób zagnieżdżanie wpływa na wielkość war- tości procentowych, możemy uniknąć rozczarowania, gdy uzyskane wielkości tekstu różnią się od zamierzonych. SPÓJNOŚĆ DZIĘKI WARTOŚCIOM PROCENTOWYM Eksperymentowanie z wartościami procentowymi może prowadzić do bardziej spójnego wyglądu strony wyświetlanego w różnych prze- glądarkach na różnych platformach. Przy stosowaniu wartości pro- centowych dobrze jest poeksperymentować z różnymi wartościami, zwłaszcza jeśli stosujemy małe wielkości czcionki. Testy możemy wy- konywać przy założeniu, że większość internautów przegląda strony, mając w przeglądarce włączony domyślny rozmiar tekstu (chociaż założenie to jest błędne — użytkownik może zmienić domyślne ustawienia). Przykładowy test przeprowadzimy na używanej już wcześniej klasie note. Możemy porównać wielkość tekstu dla wartości 85% i 90% we właściwości font-size. Niektóre przeglądarki rozróżniają wartości procentowe będące wielokrotnością liczby 10 (70, 80, 90 itp.), a inne rozróżniają bardziej specyficzne wartości, które kończą się cyfrą 5 (75, 85, 95 itp.). Porównajmy strony widoczne na rysunkach 1.12 oraz 1.13. Po lewej widoczne są strony wyświetlone w przeglądarce Safari, a po prawej strony wyświetlone w przeglądarce IE6/Win. W przeglądarce IE6/Win różnica pomiędzy wielkością 85% (na górze) i 90% (na dole) jest prawie niezauważalna. Natomiast w przeglądarce Safari widać znaczną różnicę. W tym szczególnym przypadku sugerowałbym uży- cie wielkości 90%, ponieważ wielkość tekstu dwóch popularnych przeglądarek prawie się nie różni.
  • 26. Elastyczny tekst 35 Rysunek 1.12. Porównanie wielkości tekstu klasy note w przeglądarce Safari z tym samym tekstem w przeglądarce IE6/Win. Wielkość tekstu została zmniejszona do 85% Rysunek 1.13. Porównanie wielkości tekstu klasy note w przeglądarce Safari z tym samym tekstem w przeglądarce IE6/Win. Wielkość tekstu została zmniejszona do 90% Może dzielimy tutaj włos na czworo, ale zachęcamy do eksperymen- towania podczas dobierania różnych wartości procentowych dla wła- ściwości font-size. Zmiana wartości o 5% może prowadzić do pojawienia się zauważalnej różnicy wielkości, która może wpłynąć na spójność wyglądu projektu w różnych przeglądarkach. Podsumowanie Najważniejszą informacją, jaką należy zapamiętać po przeczytaniu tego rozdziału jest to, że użytkownikowi należy umożliwić zmianę rozmiaru tekstu. Podzieliłem się swoimi rozwiązaniami, wykorzy- stującymi słowa kluczowe oraz wartości procentowe. Jednak każda strona internetowa jest inna i ma swoje własne wymagania. Najle- piej by było, gdybyśmy we wszystkich tworzonych projektach mogli uwzględnić opisaną w tym rozdziale elastyczność. Poniżej zamieściłem kilka uwag wartych zapamiętania. Użytkownicy IE/Win nie mogą zmieniać wielkości tekstu, gdy jego rozmiar zdefiniowany jest w jednostkach pikselowych. Stosowanie słów kluczowych to łatwa, zrozumiała metoda de- finiowania wielkości czcionki, która umożliwia zmianę rozmiaru tekstu przez użytkownika.
  • 27. 36 Rozdział 1. Stosowanie wartości procentowych ułatwia szybką zmianę wiel- kości całego tekstu strony poprzez zmianę jednej deklaracji lub użycie zdefiniowanego przez użytkownika arkusza stylów. Stosowanie wartości procentowych w połączeniu ze słowami kluczowymi daje możliwość bardziej precyzyjnego określenia wielkości. Dobra wiadomość jest taka, że rozdział ten jest chyba najmniej inte- resujący z całej książki. Jednak jest on solidną — a raczej elastyczną — podstawą dla wszystkich kolejnych przykładów. W dalszych roz- działach przyjmuję założenie, że użytkownik może skalować tekst na stronie w dowolnym kierunku. Z taką wiedzą możemy zacząć w kre- atywny sposób stosować style CSS i przebudować wiele tradycyj- nych komponentów stron tak, by stały się elastyczne.