Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen!Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Redaktor prowadzący: Ewelina Burska Projekt okładki: Maciej Pasek Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock.
Spis treści Wstęp Rozdział 1. Wprowadzenie Podstawowe informacje o języku HTML Znaczniki i atrybuty Najważniejsze różnice i zasady Niezbędne narzędzia i programy
Rozdział 2. Struktura dokumentu HTML5 Elementy podstawowe Nagłówek dokumentu Ciało dokumentu
Rozdział 3. Elementy języka HTML5 Komentarze Elementy blokowe Elementy wstawiane Elementy osadzone (grafika, multimedia, aplikacje) Hiperłącza Tabele Formularze
Rozdział 4. Kaskadowe arkusze stylów Wprowadzenie Style w praktyce
5 7 8 9 10 14
21 21 24 32
37 37 38 54 62 78 86 99
125 126 137
4
HTML5 • Ćwiczenia praktyczne
Rozdział 5. Praktyczne projekty
167
Szkielet strony Obstylowanie Walidacja
167 171 175
Dodatek
181
Przydatne adresy Formularz oparty na skrypcie FormMail
181 182
Podsumowanie
187
Wstęp Nie będę ukrywał, że pisanie jest moją pasją! Pierwszą książkę opublikowałem dwanaście lat temu i były to ćwiczenia praktyczne poświęcone językowi HTML4. Książka okazała się wielkim bestsellerem i sprzedała się jak przysłowiowe ciepłe bułeczki. Przez ostatnich dwanaście lat napisałem kilkadziesiąt różnych książek poświęconych m.in. tworzeniu stron WWW, ich pozycjonowaniu i optymalizacji oraz obsłudze popularnych programów. W 2006 roku historia pierwszy raz zatoczyła koło i ponownie napisałem ćwiczenia praktyczne poświęcone językowi XHTML. Natomiast dzisiaj, po dwunastu latach, znowu miałem okazję napisać ćwiczenia dotyczące języka HTML, a dokładniej jego najnowszej wersji HTML5. Taki obrót spraw cieszy mnie niezmiernie i mam nadzieję, że nowe ćwiczenia powtórzą sukces tych, którymi debiutowałem dwanaście lat temu! Język HTML5 to efekt zaprzestania rozwijania języka XHTML2, powrotu do korzeni i podążania drogą, której kierunek wytyczył HTML4. Kolejna odsłona języka HTML jest kompatybilna wstecz z jego poprzednią wersją, ale wprowadza również nowe elementy, odpowiedzialne m.in. za usprawnianie tworzenia rozbudowanych stron WWW i aplikacji internetowych. Wyjaśnia też większość niejasności, które są wynikiem błędów i przeoczeń w specyfikacji HTML4. Najważniejsze nowości HTML5 to: T Wprowadzono nowe elementy i znaczniki. T Usunięto przestarzałe elementy, np. i . T Usprawniono obsługę błędów podczas parsowania HTML.
6
HTML5 • Ćwiczenia praktyczne T Usprawniono obsługę formularzy, dodając m.in. możliwość
sprawdzania wprowadzanych danych oraz deklarowania obowiązkowych pól. T Wprowadzono obsługę elementów multimedialnych i graficznych, np. i . T Wprowadzono wiele API dla aplikacji internetowych, np. obsługę drag & drop. Dzięki niniejszym ćwiczeniom poznasz strukturę, nowe możliwości oraz elementy języka HTML5. Dodatkowo dowiesz się, w jaki sposób korzystać z popularnych właściwości oferowanych przez kaskadowe arkusze stylów. Całość materiału została dobrana w taki sposób, że po przeczytaniu poszczególnych rozdziałów i wykonaniu ćwiczeń będziesz umiał samodzielnie zbudować swoją własną stronę WWW wykorzystującą zalety nowego języka. Nie obawiaj się, że materiał omówiony w niniejszej książce jest dla Ciebie zbyt trudny i nie dasz sobie rady z budową własnej witryny. Wbrew pozorom poznanie języka HTML5 czy kaskadowych arkuszy stylów nie jest niczym skomplikowanym i przy odrobinie dobrej woli sprostasz temu zadaniu. Uwaga, na potrzeby niniejszej książki poczyniłem pewne założenia. Otóż musisz umieć obsługiwać komputer w stopniu podstawowym, a przygotowanie dokumentu tekstowego za pomocą systemowego Notatnika lub innego tekstowego edytora nie powinno być dla Ciebie problemem. Jeżeli nie spełniasz powyższych wymagań, zacznij od lektury innych książek Wydawnictwa Helion. Zdaję sobie sprawę, że temat tworzenia własnej strony WWW oraz magiczne znaczniki i atrybuty mogą na początku sprawić Ci kłopot. Dlatego jeżeli w trakcie lektury lub po jej zakończeniu napotkasz problemy albo będziesz mieć wątpliwości, napisz do mnie. Możesz liczyć na szybką pomoc oraz sprawne rozwiązanie swojego problemu. Niezbędne dane kontaktowe znajdziesz poniżej. Na koniec pragnę podziękować za zaufanie, jakim mnie obdarzyłeś, kupując moją książkę. Mam nadzieję, że po skończonej lekturze będziesz zadowolony z efektów mojej pracy i z zainteresowaniem sięgniesz po inne książki, których jestem autorem. Bartosz Danowski [email protected] http://danowski.pl/
1 Wprowadzenie Zanim zaczniesz przygodę z HTML5, musisz sobie uświadomić, że język HTML5 jest dopiero w fazie tworzenia. Mówiąc prościej, konsorcjum W3C — http://www.w3.org/, które odpowiada za jego kształt i rozwój, dopiero opracowuje poszczególne elementy specyfikacji. Z tego powodu podczas prac nad książką, którą trzymasz w ręku, musiałem poczynić kilka istotnych założeń. T Skupiłem się wyłącznie na tych elementach HTML5, które mają realne kształty i są obsługiwane przynajmniej przez jedną przeglądarkę wiodącą. T Książka ze względu na swoją formę nie zawiera opisu nowych API wprowadzonych w piątej specyfikacji języka HTML. Musiałem również zrezygnować z opisu funkcji canvas. Elementy te nie są potrzebne do tworzenia prostych stron WWW. Jeżeli jednak po poznaniu podstaw HTML5 uznasz, że chcesz poznać ten język dokładnie, polecam lekturę bardziej zaawansowanych książek o HTML5. T Musisz liczyć się z tym, że niektóre opisane elementy mogą ulec zmianie w przyszłości, ponieważ specyfikacja nie jest jeszcze oficjalnie ukończona i twórcy cały czas wprowadzają zmiany. Dodatkowo przeglądarki stron WWW w różny sposób interpretują działanie znaczników wprowadzonych w propozycji nowych wersji HTML5. T W niniejszej książce używałem tylko najnowszych wersji przeglądarek stron WWW. Fakt ten jest bardzo ważny, ponieważ każda nowa wersja przeglądarki wprowadza liczne usprawnienia w obsłudze HTML5.
8
HTML5 • Ćwiczenia praktyczne
Dodatkowo z uwagi na charakter książki i niewielką liczbę stron skupiłem się na najważniejszych znacznikach wykorzystywanych podczas tworzenia typowych stron. Uzupełnieniem całości jest rozdział poświęcony kaskadowym arkuszom stylów, bez których trudno dzisiaj mówić o projektowaniu stron WWW. Połączenie wszystkich opisanych elementów pozwoli Ci na szybkie i sprawne stworzenie strony zgodnej ze wstępną wersją specyfikacji HTML5. Musisz jednak mieć świadomość, że niniejsze ćwiczenia to wstęp do nauki HTML5 oraz kaskadowych arkuszy stylów. Dlatego po lekturze ćwiczeń możesz zainteresować się innymi, bardziej rozbudowanymi publikacjami poświęconymi HTML5.
Podstawowe informacje o języku HTML Zacznijmy od krótkiego przedstawienia genezy języków HTML oraz CSS, które odpowiadają za budowę strony i kontrolę jej wyglądu. Musisz wiedzieć, że język HTML jest elementem niezbędnym do budowy własnej strony. Natomiast CSS to zestaw funkcji, za pomocą których możesz kontrolować wygląd poszczególnych elementów na stronie. W skrócie można powiedzieć, że kaskadowe arkusze stylów to pewnego rodzaju uzupełnienie, bez którego można się obejść, wykorzystując rozwiązania dostępne np. w czystym języku HTML. Zapamiętaj jednak, że nowoczesna strona WWW to — w dużym uproszczeniu — połączenie języka HTML i CSS. Konstrukcja języków HTML i CSS jest standaryzowana i określona przez odpowiednią specyfikację. Jest to konieczne w celu zachowania porządku oraz uniezależnienia języków od platform sprzętowych i rozwiązań programowych poszczególnych twórców przeglądarek. Standaryzacją zajmuje się W3C — http://www.w3.org/. Poniżej zamieściłem adresy pełnych wersji specyfikacji HTML4, CSS2 oraz projektów HTML5 i CSS3. T HTML4 — http://www.w3.org/TR/html4/, T HTML5 — http://www.w3.org/TR/html5/, T CSS2 — http://www.w3.org/TR/CSS21/, T CSS3 — http://www.w3.org/TR/CSS/.
Rozdział 1. • Wprowadzenie
9
Niezależnie od tego, z jakiej specyfikacji korzystasz, musisz pamiętać, że pliki zawierające odpowiednie znaczniki HTML i CSS są dokumentami tekstowymi, a co za tym idzie, mogą być tworzone i przeglądane za pomocą dowolnego edytora tekstu, np. systemowego Notatnika. W zależności od zawartości rozszerzenie pliku może się różnić, jednak nadal mamy do czynienia z dokumentem tekstowym. Poniżej zamieściłem wykaz najpopularniejszych typów plików wraz z opisem ich zawartości. T htm — plik tekstowy zawierający kod HTML, CSS, czasami też kod JavaScript; T html — plik tekstowy zawierający kod HTML, CSS, czasami też kod JavaScript; T shtml — plik tekstowy zawierający kod HTML, CSS oraz instrukcje SSI — pliki takie są przetwarzane przez serwer przed wysłaniem do przeglądarki; T php — pliki tekstowe zawierające kod HTML, CSS połączony ze skryptami PHP; T cgi — pliki tekstowe zawierające skrypty napisane w Perlu bądź Shellu — często połączone z kodem HTML; T pl — pliki tekstowe zawierające skrypty napisane w Perlu — często połączone z kodem HTML; T js — pliki tekstowe zawierające skrypty napisane w języku JavaScript; T css — pliki tekstowe zawierające zewnętrzne arkusze stylów. W dalszych rozważaniach będziemy korzystać z plików html oraz css.
Znaczniki i atrybuty Każdy dokument HTML składa się ze znaczników, które są zapisywane w nawiasach kątowych i wyglądają mniej więcej tak: . Znaczniki pojawiają się prawie zawsze parami, tzn. występuje znacznik otwierający oraz znacznik zamykający:
W praktyce może to wyglądać mniej więcej tak:
Przykład akapitu.
10
HTML5 • Ćwiczenia praktyczne
Jak widać, znacznik zamykający po nawiasie kątowym zawiera jeszcze /. Każdy znacznik otwierający może mieć szereg dodatkowych elementów — atrybutów — określających jego właściwości, np. formatowanie wyglądu za pomocą CSS. Właściwości atrybutów obowiązkowo powinny zostać zapisane w cudzysłowie " ".
Przykład akapitu.
Znaczniki zamykające nigdy nie zawierają dodatkowych parametrów. Wspomniałem już o tym, że znaczniki prawie zawsze występują w parach: znacznik otwierający i znacznik zamykający. A zatem, jak łatwo się domyślić, od tej zasady są wyjątki. Jest ich niewiele, ale są. Typowe przykłady, z którymi się spotkasz, to: , , , , , . W przypadku najnowszej specyfikacji języka HTML znaczniki i atrybuty musimy wpisywać, używając zarówno dużych, jak i małych liter. Wyjątkiem są te elementy, które zawierają odwołania do innych plików; tu nazwa pliku musi być pisana dokładnie tak samo, jak wygląda w rzeczywistości. W przypadku atrybutów wartości występujące po znaku równości należy zawsze zapisywać, używając cudzysłowu.
Najważniejsze różnice i zasady Bezpośrednim poprzednikiem języka HTML5 jest HTML4, a dokładnie jego odsłona oznaczona numerem 4.01. Język ten był rozwijany do pewnego czasu. Następnie twórcy wybrali inną drogę i zaczęli rozwijać XHTML, który doczekał się dwóch głównych specyfikacji. Po wstępnym zachwycie XHTML zdecydowano o zaniechaniu jego dalszego rozwijania i powrocie do prac nad kolejną wersją czystego HTML-a. Nowa odsłona języka HTML5 wprowadza szereg zmian i różnic w stosunku do poprzednich wersji HTML4. Najważniejsze zmiany wypunktowałem poniżej. T Kompatybilność — język HTML5 jest zgodny z poprzednią wersją specyfikacji oznaczoną numerem 4. W praktyce oznacza to, że strona WWW napisana na bazie nowej wersji HTML będzie działać w przeglądarkach, które nie potrafią obsługiwać tego języka. Oczywiście nowe znaczniki i elementy zostaną
Rozdział 1. • Wprowadzenie
T
T
T
T
11
zignorowane, ale główny szkielet witryny oraz znaczniki znane z poprzednich specyfikacji zadziałają poprawnie. Takie podejście przeważyło o popularności wstępnej wersji języka, która z powodzeniem jest używana w wielu projektach. Brak przestarzałych znaczników — propozycja nowej wersji specyfikacji języka HTML5 usuwa wiele zbędnych i przestarzałych znaczników. W dużym uproszczeniu możemy przyjąć, że wszelkie znaczniki odpowiedzialne za formatowanie wyglądu witryny oraz mające negatywny wpływ na jej funkcjonalność zostały usunięte, ponieważ ich funkcję przejęły kaskadowe arkusze stylów. Usunięte znaczniki to m.in.: , , , , , , , , , , . Uproszczenie zapisu — nowa odsłona specyfikacji wprowadza liczne uproszczenia w zapisie znaczników oraz ich atrybutów. Na przykład w tej chwili określenie strony kodowej wygląda następująco: . Dla porównania ten sam zapis w poprzedniej wersji specyfikacji miał postać . Uproszczeń jest oczywiście więcej i szczegółowe informacje na ich temat znajdziesz w kolejnych podrozdziałach. Nowe znaczniki i atrybuty — jak łatwo się domyślić, nowa specyfikacja języka HTML to również propozycje nowych znaczników, które mają uprościć i zwiększyć kontrolę nad szkieletem strony. Wśród nowych znaczników warto wspomnieć m.in. o: , , , , , , , . Znaczników i atrybutów jest więcej i szczegółowe informacje na ich temat znajdziesz w kolejnych podrozdziałach. API — rozwiązanie to pozwala na uproszczenie tworzenia rozbudowanych aplikacji internetowych (przykładem takiej aplikacji jest Google Docs).
Praca z językiem HTML5 to również kilka żelaznych zasad, których bezwzględnie musisz przestrzegać. Część z tych zasad obowiązywała już w przypadku HTML4 lub XHTML. Pozostałe to nowe wymagania i obostrzenia wprowadzone w najnowszej odsłonie języka.
12
HTML5 • Ćwiczenia praktyczne
Zasada 1. Nigdy nie krzyżuj znaczników Pierwszą i jedną z najważniejszych zasad obowiązujących podczas tworzenia stron WWW jest odpowiednie zagnieżdżanie znaczników. Innymi słowy, chodzi o to, aby unikać krzyżowania znaczników w kodzie strony. Przyjrzyj się poniższemu przykładowi, który prezentuje skrzyżowane znaczniki.
Przykład bloku tekstu ze skrzyżowanymi znacznikami
Teraz przykład, w którym znaczniki zostały prawidłowo zagnieżdżone.
Przykład bloku tekstu ze skrzyżowanymi znacznikami
Zasada 2. Zawsze zamykaj wszystkie znaczniki Język XHTML wprowadził regułę, w myśl której wszystkie znaczniki powinny być bezwzględnie zamykane. Sprawa jest prosta i oczywista w przypadku większości znaczników, gdyż znaczniki zawsze występują w parze: znacznik otwierający i znacznik zamykający.
Przykład bloku tekstu
Problemy mogą się pojawić w przypadku tych elementów, które w specyfikacji nie mają przewidzianych znaczników zamykających. Mam tutaj na myśli następujące znaczniki: T , T , T , T . Twórcy XHTML znaleźli rozwiązanie tego problemu. Wystarczy, że na końcu znacznika przed znakiem > dodamy /. Oto przykład: T , T , T , T . Ważne jest, aby bezpośrednio przed znakiem / dodać spację. Brak spacji może powodować nieprawidłowe działanie strony WWW w niektórych przeglądarkach.
Rozdział 1. • Wprowadzenie
13
HTML5 odchodzi od zasady obowiązkowego zamykania znaczników. Oznacza to, że poniższy kod możemy uznać za poprawny.
komórka
komórka
komórka
komórka
tabeli tabeli tabeli tabeli
Takie rozwiązanie w moim odczuciu jest błędem, ponieważ w przypadku osób początkujących może prowadzić do licznych problemów z poprawnością kodu. Oszczędności w rozmiarze kodu strony (mniej znaczników to mniejszy rozmiar pliku) są symboliczne i w zestawieniu z ewentualnymi problemami nie są wiele warte. Na szczęście twórcy HTML5 nie zabronili nam zamykania znaczników. Dlatego w niniejszej książce będę konsekwentnie zachęcał do zamykania wszystkich znaczników, tak jak to robiliśmy w przypadku specyfikacji XHTML. Poniżej zamieściłem przykładowy kod wraz z domykającymi znacznikami.
komórka
komórka
komórka
komórka
tabeli tabeli tabeli tabeli
Zasada 3. Wpisując znaczniki i atrybuty, zawsze używaj małych liter Piąta specyfikacja języka HTML porządkuje wiele spraw. Jedną z istotniejszych kwestii jest wprowadzenie obowiązku stosowania wyłącznie małych liter do zapisu nazw znaczników oraz ich atrybutów i wartości. Poprawny zapis ma więc postać:
Przykładowy blok tekstu z własną klasą
14
HTML5 • Ćwiczenia praktyczne
Natomiast forma widoczna poniżej uznawana jest za błędną i należy jej unikać.
Przykładowy blok tekstu z własną klasą
Zasada 4. Używaj cudzysłowów dla wszystkich atrybutów Większość znaczników występujących w języku HTML5 może mieć przypisane dodatkowe atrybuty wraz z określonymi wartościami. Tworząc strony na bazie najnowszej odsłony języka HTML5, należy pamiętać o tym, że podczas określania atrybutów wraz z ich wartościami zawsze używamy cudzysłowów. Odpowiedni przykład znajduje się poniżej.
Zasada 5. Uważaj ze znakami specjalnymi w skryptach Tworząc kod zgodny z HTML5, zamiast znaków specjalnych, np. < czy &, używaj encji, np. < i &. W dalszej części ćwiczeń będę konsekwentnie przypominał o powyższych zasadach. Dlatego jeżeli w tej chwili czegoś nie zrozumiałeś, to nie przejmuj się tym. Z każdym kolejnym rozdziałem, który przeczytasz, wszystko stanie się jaśniejsze.
Niezbędne narzędzia i programy Twórca stron WWW w swoim warsztacie powinien mieć kilka narzędzi (programów), które pozwolą mu pracować w znacznie wygodniejszy i szybszy sposób. Tak się składa, że w naszym przypadku wystarczą następujące aplikacje: T tekstowy edytor HTMLi CSS, T program do tworzenia i obróbki grafiki, T przeglądarka stron WWW.
Rozdział 1. • Wprowadzenie
15
Edytory HTML, XHTML i CSS Wspominałem o tym, że pliki zawierające kod strony WWW to dokumenty tekstowe, a co za tym idzie, do ich edycji możemy wykorzystać dowolny tekstowy edytor, np. systemowy Notatnik. Niestety takie rozwiązanie nie należy do zbyt wygodnych, gdyż każdorazowo wymaga ręcznego wklepywania wszystkich niezbędnych znaczników oraz pamiętania o ich domykaniu. W związku z tym na rynku stosunkowo szybko pojawiły się wyspecjalizowane edytory programistyczne wyposażone w szereg dodatkowych funkcji znacznie ułatwiających pracę webmastera. Najważniejsze elementy, jakimi powinien charakteryzować się dobry edytor tekstowy, to: T domykanie znaczników, T kolorowanie składni, T kodowanie polskich znaków w standardzie ISO i UTF, T kreatory ułatwiające generowanie części kodu, T sprawdzanie poprawności wygenerowanego kodu. Na rynku możemy spotkać wiele bardzo dobrych i godnych polecenia edytorów tekstowych. Dlatego ostatecznie zdecydowałem się nie wybierać konkretnego rozwiązania, a jedynie przedstawić wykaz kilku ciekawych opcji, które moim zdaniem zasługują na uwagę. Dodam, że wszystkie wybrane edytory to darmowe aplikacje. T 1st Page 2006 — bardzo rozbudowany edytor stron WWW, który
pozwala na pracę nad stroną w trybie tekstowym oraz graficznym. Warto zwrócić uwagę na to, że ten edytor ma mechanizm domykania znaczników, kolorowania składni oraz wygodne podpowiedzi. Duży plus należy się autorowi za dodanie dziesiątek kreatorów ułatwiających utworzenie bardziej skomplikowanego elementu na stronie, np. uzyskanie popularnego efektu rollover albo dodanie tabeli czy galerii ze zdjęciami. Prezentowane narzędzie wspiera pracę z kodem XHTML i HTML. Strona domowa edytora to http://www.evrsoft.com/. Minusem jest brak polskiej wersji językowej. T PSPad — zaawansowany edytor programistyczny obsługujący
wiele języków programowania, w tym HTML i CSS. Edytor ma wszystkie niezbędne udogodnienia ułatwiające pracę i został wyposażony przez autora w moduł sprawdzania pisowni
16
HTML5 • Ćwiczenia praktyczne
— również polskiej. Zaletą jest polskojęzyczny interfejs i wygoda obsługi. Warto również wspomnieć o integracji z darmowym edytorem kaskadowych arkuszy stylów, TopStyle Lite, oraz sprawdzaniu poprawności kodu i obsłudze wielu dodatków, które można pobrać ze strony domowej — http://www.pspad.com/en/. Ć W I C Z E N I E
1.1
Tekstowy edytor
Zaopatrz się w tekstowy edytor HTML i CSS. Możesz skorzystać z jednego z wymienionych powyżej narzędzi lub używać systemowego Notatnika.
Przygotowanie i edycja grafiki Dzisiaj nowoczesna strona nie może się już obejść bez elementów graficznych. Dlatego myśląc poważnie o przygotowaniu swojej pierwszej strony, musisz zaopatrzyć się w odpowiednie narzędzie lub narzędzia graficzne. Musisz wiedzieć, że na rynku istnieje wiele bardzo dobrych i profesjonalnych programów do obróbki grafiki, np. Adobe Photoshop czy Corel Photo Paint, ale niestety wszystkie mają jedną podstawową wadę: cenę. Na szczęście można znaleźć dla nich darmowe lub tanie zastępniki. Tak się składa, że w codziennej pracy używam programu Paint Shop Pro w wersji 6. Program ten pozwala pracować na warstwach, obsługuje formaty plików gif, png oraz jpeg używane na stronach WWW. Natomiast poniżej wymieniłem kilka darmowych rozwiązań, które powinny Cię zainteresować ze względu na oferowane możliwości. T Paint.NET — jest bardzo rozbudowanym edytorem grafiki
rastrowej. Program jest rozwijany przez studentów uniwersytetu Washingtona, a dodatkowo jest wspierany przez firmę Microsoft. Prezentowane narzędzie pozwala na obrabianie różnego rodzaju grafiki rastrowej. Obsługuje warstwy, oferuje wielopoziomową opcję cofania zmian oraz efekty specjalne. Do wymienionych zalet należy dodać przejrzysty interfejs oraz możliwość instalacji innych wersji językowych. Niestety polska wersja programu nie jest jeszcze dostępna. Strona domowa programu to http://www.getpaint.net/index.html.
Rozdział 1. • Wprowadzenie
17
T GIMP — jest darmowym narzędziem do obróbki grafiki rastrowej.
Za pomocą tego programu możesz edytować zawartość zdjęć lub tworzyć własne grafiki, na przykład na potrzeby projektowanej strony WWW. GIMP oferuje wiele zaawansowanych funkcji, a do najważniejszych można zaliczyć obsługę warstw, wykorzystanie ogromnej liczby wtyczek, możliwość tworzenia własnych makr oraz wiele innych przydatnych funkcji. Warto również wspomnieć o rozbudowanej selekcji, pracy z kanałami Alfa, obsłudze antyaliasingu, skalowaniu i przekształcaniu obrazów, obsłudze animowanych GIF-ów, tworzeniu map odnośników czy łączeniu tekstu z grafiką. Wśród obsługiwanych formatów graficznych można znaleźć m.in.: JPEG, BMP, PNG, XPM, TIFF, TGA, MPEG, PS, PDF, PCX, GIF. Program dostępny jest m.in. w polskiej wersji językowej dopasowanej do wielu różnych systemów operacyjnych. GIMP-a można pobrać ze strony http://www.gimp.org/. Ć W I C Z E N I E
1.2
Program graficzny
Zaopatrz się w tekstowy edytor HTML i CSS. Możesz skorzystać z jednego z wymienionych powyżej narzędzi lub używać systemowego Notatnika.
Przeglądarki stron WWW Ostatnim ważnym elementem niezbędnym podczas tworzenia stron WWW jest przeglądarka. Po wielu latach posuchy i braku konkurencji na rynku możemy się cieszyć sporym wyborem różnych przeglądarek stron WWW. Lista widoczna poniżej jest całkiem długa, ale musisz mieć świadomość, że nie wszystkie przeglądarki (nawet w najnowszych wersjach) wspierają robocze wersje specyfikacji HTML5 i CSS3. T Google Chrome — http://www.google.com/chrome/?hl=pl, T Mozilla Firefox — http://www.mozilla.org/pl/firefox/, T Opera — http://www.opera.com/portal/choice/?language=pl, T Safari — http://www.apple.com/pl/safari/,
18
HTML5 • Ćwiczenia praktyczne
T Internet Explorer — http://windows.microsoft.com/pl-PL/internet-
explorer/products/ie/home. Na rysunku 1.1 przedstawiłem wykres udziału przeglądarek w rynku. Prezentowany podział odbył się na podstawie silników przeglądarek, dlatego należy Ci się wyjaśnienie odnośnie do tego, które przeglądarki używają konkretnych silników. Rysunek 1.1. Wykres popularności przeglądarek — podział według silników. Opracowane na podstawie danych witryny GemiusRanking http://ranking.pl
T Gecko — silnik używany przez przeglądarki z rodziny Mozilla
Firefox, T MSIE — przeglądarka Microsoft Internet Explorer, T Opera — silnik przeglądarki Opera, T WebKit/KHTML — silnik stosowany m.in. w przeglądarkach
Google Chrome i Apple Safari. Aktualny stan obsługi języków HTML5 i CSS3 przez przeglądarki z rozbiciem na konkretne wersje można sprawdzić na stronie http://www. findmebyip.com/litmus/#target-selector. Na tę chwilę sytuacja wygląda tak, że najlepsze wsparcie dla nowych standardów oferują przeglądarki wykorzystujące silnik WebKit/KHTML oraz Opera i Mozilla Firefox. Jednak musisz mieć świadomość, że pojawienie się kolejnych wer-
Rozdział 1. • Wprowadzenie
19
sji przeglądarek może tutaj sporo zmienić. Taki stan rzeczy może trwać jeszcze wiele lat i ukończenie specyfikacji obu języków nie musi go zmienić. Pamiętaj, że jedną z najważniejszych metod tworzenia stron działających poprawnie niezależnie od przeglądarki jest ścisłe trzymanie się specyfikacji oraz jej zaleceń. Niestety niekiedy będziesz zmuszony zrezygnować z pewnych rozwiązań na rzecz innych, mniej problematycznych. Ć W I C Z E N I E
1.3
Niezbędne przeglądarki stron WWW
Zainstaluj w swoim systemie wiodące przeglądarki stron WWW. Innymi słowy, musisz pobrać z internetu najnowsze wersje przeglądarek MS Internet Explorer, Mozilla Firefox, Google Chrome oraz Opera, a następnie je zainstalować. Jeżeli masz już wymienione przeglądarki, koniecznie sprawdź, czy są to najnowsze wersje. W razie potrzeby dokonaj aktualizacji.
20
HTML5 • Ćwiczenia praktyczne
2 Struktura dokumentu HTML5 Po nieco przydługim, ale koniecznym wstępie przyszła najwyższa pora, aby poznać konkretne znaczniki, ich atrybuty oraz strukturę dokumentu, który wykorzystuje propozycje znajdujące się w piątej specyfikacji języka HTML. Zanim jednak zaczniesz testować opisane poniżej elementy, upewnij się, że na Twoim komputerze zainstalowano najnowszą wersję jednej z wiodących przeglądarek. W dalszej części będę korzystać z różnych przeglądarek, ponieważ musisz mieć świadomość, że nie każdy nowy znacznik działa poprawnie w każdej przeglądarce. O ewentualnych różnicach i problemach będę Cię informował, gdy zajdzie taka potrzeba.
Elementy podstawowe Każdy dokument HTML ma ściśle określony szkielet, który nie zmienia się w zależności od zawartości strony. Oczywiście szkielet dla strony zbudowanej na podstawie HTML5 różni się od tego wykorzystywanego w stronach bazujących na wcześniejszych wersjach języka HTML czy XHTML. Opierając się na poniższym przykładzie, przeprowadzę analizę podstawowej struktury witryny wykonanej w zgodzie z zaleceniami nowej specyfikacji.
22
HTML5 • Ćwiczenia praktyczne
Pierwszym wspólnym i obowiązkowym elementem szkieletu strony jest wpis określający rodzaj języka użytego do jej stworzenia. W przypadku strony wykorzystującej język HTML5 pierwszy wpis przybiera następującą postać:
W poprzedniej wersji języka HTML oznaczonej numerem 4.01 zapis miał znacznie bardziej skomplikowaną i rozbudowaną postać. Listing widoczny poniżej pokazuje przykład zapisu stosowanego w przypadku strony dokładnie trzymającej się specyfikacji HTML 4.01.
Warto w tym miejscu nadmienić, że równolegle istniały jeszcze inne zapisy używane w przypadku stron korzystających z ramek czy określające swobodne stosowanie wytycznych HTML 4.01. Na szczęście wraz z propozycją nowej wersji specyfikacji uproszczono zapis, dzięki czemu łatwiej go zapamiętać i jest on dużo czytelniejszy.
Kolejnym obowiązkowym elementem w strukturze dokumentu jest znacznik , który odpowiada za określenie ram tworzonego dokumentu. Wszystkie elementy umieszczone pomiędzy to właściwa zawartość strony WWW. Następnym w kolejności znacznikiem tworzącym strukturę dokumentu jest . Jest on odpowiedzialny za określenie podstawowych właściwości strony, takich jak strona kodowa, tytuł, informacje o autorze oraz słowa kluczowe i opis strony. Dokładne informacje na temat zawartości znajdziesz w dalszej części niniejszego rozdziału. Bezpośrednio po znaczniku zamykającym znajduje się ´, we wnętrzu którego zamieszczamy całą widoczną treść strony. Mówiąc jeszcze prościej, tylko to, co jest umieszczone pomiędzy znacznikami , jest wyświetlane w oknie przeglądarki. Pozostałe elementy to polecenia wpływające na zachowanie przeglą-
Rozdział 2. • Struktura dokumentu HTML5
23
darki (np. strona kodowa) lub pełniące funkcje czysto informacyjne. Ten element również został dokładnie omówiony w dalszej części niniejszego rozdziału. Właśnie poznałeś wszystkie niezbędne elementy tworzące strukturę dokumentu zgodnego z piątą specyfikacją języka HTML. Zapamiętaj jednak, że to dopiero początek i zarówno struktura dokumentu, jak i sposób organizacji treści wymagają szeregu dodatkowych znaczników, które poznasz w dalszej części tej książki. Ć W I C Z E N I E
2.1
Podstawowa struktura dokumentu
Korzystając z informacji zdobytych podczas lektury niniejszego podrozdziału oraz z edytora tekstowego (np. systemowego Notatnika), stwórz dokument HTML i umieść w nim znaczniki odpowiedzialne za definicję podstawowej struktury strony WWW. Jeżeli napotkasz problemy podczas pracy, skorzystaj z porad zamieszczonych poniżej. 1. Otwórz systemowy Notatnik. 2. Wprowadź znaczniki widoczne poniżej.
3. Kliknij menu Plik, a następnie wybierz opcję Zapisz jako. 4. W okienku widocznym na rysunku 2.1 w polu Zapisz jako typ
ustaw Wszystkie pliki (*.*). Następnie w polu Nazwa pliku wpisz nazwę tworzonego dokumentu. Pamiętaj o tym, aby po nazwie dodać kropkę i końcówkę html — .html. Na koniec w polu Kodowanie ustaw UTF-8 i kliknij przycisk Zapisz. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
24
HTML5 • Ćwiczenia praktyczne
Rysunek 2.1. Zapisywanie dokumentu HTML w systemowym Notatniku
Nagłówek dokumentu Pomiędzy znacznikami znajduje się kilka elementów ważnych dla konstrukcji całej strony. Ze względu na wagę tych znaczników dla całego dokumentu postanowiłem opisać je w oddzielnym podrozdziale. Zawartość znajdująca się pomiędzy znacznikami jest niewidoczna w oknie przeglądarki. Wyjątkiem od tej zasady jest jedynie tytuł strony, który zobaczysz na górnej belce okna przeglądarki. Pozostałe elementy mają znaczenie dla działania strony lub jej poprawnej indeksacji przez wyszukiwarki. Ewentualne pominięcie większości wpisów nie wpłynie negatywnie na działanie witryny.
Strona kodowa Zacznę od najważniejszego elementu, który jest odpowiedzialny za stronę kodową tworzonego dokumentu. Język HTML jako ponadsystemowy nośnik informacji musi mieć możliwość obsługi różnych języków, a co za tym idzie, różnych znaków narodowych. W związku z tym zostały określone różne strony kodowe dla danych języków i części
Poniżej zamieściłem przykładowy listing struktury strony wraz z definicją strony kodowej.
26
HTML5 • Ćwiczenia praktyczne
Ć W I C Z E N I E
2.2
Deklaracja strony kodowej
Korzystając z informacji zdobytych podczas lektury niniejszego podrozdziału oraz z edytora tekstowego (np. systemowego Notatnika), otwórz uprzednio przygotowany dokument HTML i umieść w nim znacznik odpowiedzialny za definicję strony kodowej. Jeżeli napotkasz problemy podczas pracy, skorzystaj z porad zamieszczonych poniżej. 1. Za pomocą Notatnika otwórz plik przygotowany w poprzednim ćwiczeniu. 2. Pomiędzy znacznikami dodaj znacznik odpowiedzialny za stronę kodową.
3. Zapisz plik na dysku. Pamiętaj o tym, że przy zapisie możesz
wybrać sposób kodowania znaków. Odpowiednia procedura postępowania została opisana w ćwiczeniu 2.1 w punktach 3. i 4. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
Tytuł strony Następnym znacznikiem, który zalicza się do grona stałych elementów strony WWW, jest . Odpowiada on za ustawienie tytułu strony widocznego na belce tytułowej w oknie przeglądarki. Znacznik ten powinien znajdować się pomiędzy .
Tytuł przykładowej strony
Rozdział 2. • Struktura dokumentu HTML5
27
Tytuł jest jedynym elementem strony, który znajduje się w nagłówku dokumentu i jest widoczny bez konieczności analizowania zawartości kodu strony — rysunek 2.2. Rysunek 2.2. Tytuł strony jest widoczny w oknie niektórych przeglądarek Ć W I C Z E N I E
2.3
Deklaracja strony tytułowej
Korzystając z informacji zdobytych podczas lektury niniejszego podrozdziału oraz z edytora tekstowego (np. systemowego Notatnika), otwórz uprzednio przygotowany dokument HTML i umieść w nim znacznik odpowiedzialny za tytuł strony. Jeżeli napotkasz problemy podczas pracy, skorzystaj z porad zamieszczonych poniżej. 1. Za pomocą Notatnika otwórz plik przygotowany w poprzednim ćwiczeniu. 2. Pomiędzy znacznikami dodaj wraz z tytułem swojej strony.
Tytuł przykładowej strony
3. Zapisz plik na dysku. Pamiętaj o tym, że przy zapisie możesz
wybrać sposób kodowania znaków. Odpowiednia procedura postępowania została opisana w ćwiczeniu 2.1 w punktach 3. i 4. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
28
HTML5 • Ćwiczenia praktyczne
Słowa kluczowe i opis strony Skoro interesuje Cię tworzenie stron WWW, to z całą pewnością mogę założyć, że korzystasz z internetu i sieciowe wyszukiwarki, np. Google, są Ci doskonale znane. W związku z tym, że nie mam pewności, czy wiesz, skąd w używanej przez Ciebie wyszukiwarce znalazły się strony, postaram się wprowadzić Cię w to ciekawe zagadnienie. Zapamiętaj, że pozycjonowanie stron to bardzo złożone zadanie, na które składa się wiele czynności wykraczających poza dodanie znaczników z opisem i słowami kluczowymi. Jeżeli temat pozycjonowania Cię zainteresował, to polecam lekturę książki Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie III — http://helion.pl/rt/pozop3.
Otóż strony trafiają do serwisów indeksujących w dość prosty sposób: wyszukiwarka wysyła specjalnego „robota”, który sprawdza stronę i dodaje ją do ogromnej bazy danych. To bardzo skrócona i uproszczona metoda działania. Robot na Twoją stronę może trafić na wiele różnych sposobów, np. poprzez Twoje zgłoszenie lub dzięki odnośnikom z innych stron znalezionych w sieci. W zależności od wyszukiwarki robot sprawdza w kodzie strony kilka elementów i na tej podstawie dodaje ją do bazy. Pierwszym elementem jest znacznik , o którym już wspominałem. Następnym elementem są słowa kluczowe (keywords) witryny oraz opis (description) strony. Poniżej zamieszczam odpowiednie znaczniki zawierające słowa kluczowe oraz opis strony.
Znacznik może przybierać przeróżne formy, którym poświęciłem następny podrozdział, jednak nigdy nie zawiera elementu zamykającego. Zwróć uwagę, że słowa kluczowe zostały oddzielone od siebie za pomocą przecinków i mogą składać się z kilku wyrazów. Opis strony zawiera jedno, dwa zdania na temat zawartości strony, które pojawią się jako wynik szukania. Na podstawie tych zdań internauta najczęściej podejmuje decyzję o odwiedzeniu strony, którą znalazł za pomocą wyszukiwarki. Dlatego warto przyłożyć się do stworzenia sensownego opisu.
Rozdział 2. • Struktura dokumentu HTML5
29
Odpowiednie przygotowanie tytułu, słów kluczowych oraz opisu ma znaczenie dla właściwej indeksacji strony przez wyszukiwarki oraz tego, jaką pozycję zajmie ona w bazie danych. Dlatego warto zadbać o to, aby niezbędne znaczniki znalazły się wśród obowiązkowych elementów Twojego kodu HTML. Poniżej zamieściłem fragment kodu pochodzący z mojej strony domowej. Dzięki temu będziesz mógł zobaczyć, w jaki sposób przygotowałem opis strony oraz wybrałem słowa kluczowe.
Tytuł przykładowej strony
Ć W I C Z E N I E
2.4
Słowa kluczowe i opis strony
Korzystając z informacji zdobytych podczas lektury niniejszego podrozdziału oraz z edytora tekstowego (np. systemowego Notatnika), otwórz uprzednio przygotowany dokument HTML i umieść w nim znaczniki odpowiedzialne za definicję opisu strony i słów kluczowych. Jeżeli jeszcze nie wiesz, co powinno znaleźć się w opisie i jakie słowa wybrać, pozostaw wolne miejsce na wpisanie tych elementów w przyszłości. W przypadku problemów z wykonaniem tego ćwiczenia pomiędzy znacznikami dodaj poniższy kod. Nie zapomnij dołączyć opisu i słów kluczowych.
Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
30
HTML5 • Ćwiczenia praktyczne
Inne elementy składowe nagłówka strony Nagłówek może zawierać jeszcze kilka innych znaczników związanych z określeniem właściwości strony lub spełniających funkcję informacyjną. Tak się składa, że elementy te są związane ze znacznikiem . Poniżej opisałem kilka najważniejszych i najczęściej spotykanych elementów występujących w nagłówku strony.
Podany wpis ma charakter informacyjny i dzięki niemu możemy w kodzie zamieścić informacje o autorze strony. Dane te nie są widoczne na zewnątrz, ale przydają się do ustalenia praw autorskich dla danej strony. Uważam, że warto korzystać z tego znacznika.
Następny element mogący wchodzić w skład nagłówka zawiera informacje o prawach autorskich. Również w tym przypadku wpisy te nie są widoczne na zewnątrz i mają charakter typowo informacyjny.
Wewnątrz strony możemy również zamieścić informacje na temat narzędzia, za pomocą którego został wykonany dany dokument. Z tego znacznika bardzo chętnie korzystają autorzy edytorów i w ten sposób reklamują swój produkt. Podobnie jak poprzednio opisane elementy ten wpis ma charakter informacyjny i nie jest widoczny na stronie. Znacznik może występować z jeszcze jednym atrybutem, http-equiv, który zawiera informacje będące nagłówkiem HTTP:
Dla atrybutu http-equiv przewidziano kilka wartości. I tak:
spowoduje automatyczne odświeżanie dokumentu co x sekund. Polecenie to jest szczególnie przydatne na stronach, które są bardzo często aktualizowane i autorowi zależy, by odwiedzający zawsze widział aktualne dane, a nie zawartość przechowywaną na dysku w plikach tymczasowych przeglądarki. Polecenie to może również przybrać formę:
Rozdział 2. • Struktura dokumentu HTML5
31
Spowoduje ono automatyczne przeniesienie odwiedzającego po upływie x sekund pod nowy adres zadeklarowany w sekcji url. O przydatności tego polecenia nie muszę chyba nikogo przekonywać. Wiersz ten rozwiązuje problem ze zmianą adresu i utratą odwiedzających — wystarczy pod starym adresem umieścić plik index.html z deklaracją http-equiv="refresh" i określonym nowym adresem, pod którym umieściliśmy naszą stronę. Każdy, kto wejdzie pod stary adres, zostanie automatycznie przekierowany do aktualnej wersji witryny. Warto wiedzieć, że część serwisów indeksujących korzysta z , który określa, czy dana strona powinna być indeksowana oraz czy linki na niej zawarte również mają być dodane do bazy serwisu katalogującego. Przy zastosowaniu polecenia robots atrybut content zawiera następujące dyrektywy informujące o dopuszczonych operacjach dla naszej strony: T 'index' — strona powinna być zaindeksowana; T 'noindex' — strona nie powinna być zaindeksowana; T 'follow' — linki z tej strony powinny być zaindeksowane; T 'nofollow' — linki z tej strony nie powinny być zaindeksowane; T 'all' równa się 'index, follow' — wartość domyślna; T 'none' równa się 'noindex, nofollow'. Dalej przedstawiam przykład zastosowania polecenia name="robots" dla strony, która ma być indeksowana wraz ze wszystkimi odnośnikami prowadzącymi do podstron. Warto, abyś zapamiętał, że dla większości witryn takie rozwiązanie jest zdecydowanie najlepsze.
Kolejnym znacznikiem występującym w nagłówku jest polecenie określające bazowy adres dla dokumentu i wszystkich odnośników znajdujących się w jego treści.
Przydatność doskonale widać przy przenoszeniu dokumentów do innych katalogów. Jak się później dowiemy, odsyłacze mają różne formy, dlatego przy takiej operacji nietrudno o zerwanie odnośników, a pamiętanie przy przenoszeniu o zmianie każdego z nich jest kłopotliwe.
32
HTML5 • Ćwiczenia praktyczne
Ostatnim poleceniem wchodzącym w skład nagłówka dokumentu jest , który w naszym przypadku będzie odpowiedzialny za dołączanie zewnętrznego arkusza stylów. Element ma następującą konstrukcję:
Ć W I C Z E N I E
2.5
Uzupełnianie szablonu dokumentu o dodatkowe elementy
Korzystając z informacji zdobytych podczas lektury niniejszego podrozdziału, otwórz uprzednio przygotowany dokument HTML i umieść w nim znaczniki, które uważasz za potrzebne. Jeżeli jeszcze nie wiesz, które znaczniki będą potrzebne, skorzystaj z mojej propozycji widocznej poniżej.
Zapisz zmodyfikowany plik HTML. Jeżeli korzystasz z Notatnika, pamiętaj o tym, aby ustawić kodowanie na UTF-8. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
Ciało dokumentu Wiesz już, że dokument HTML ma swoje określone ramy oraz nagłówek. Elementy te mają znaczenie czysto konfiguracyjne lub informacyjne i poza tytułem nie są widoczne na zewnątrz. Teraz przyszła pora, by poznać kolejne elementy strony WWW. Najważniejszym znacznikiem odpowiedzialnym za wydzielenie głównej sekcji dokumentu HTML jest . Wszystkie informacje, które znajdą się pomiędzy tymi znacznikami, są traktowane jako zawartość strony i zostają wyświetlone w oknie przeglądarki. Listing widoczny poniżej przedstawia położenie tego elementu w stosunku do pozostałych znaczników.
Rozdział 2. • Struktura dokumentu HTML5
33
Przykładowy tytuł
Tutaj znajduje się widoczna treść strony WWW.
Na rysunku 2.3 widać podgląd strony, jaka powstała po wprowadzeniu kodu z przykładu zamieszczonego wcześniej, zawierającego niezbędne elementy każdej strony WWW. Rysunek 2.3. Efekt działania kodu z listingu zamieszczonego powyżej
Jak widzisz, nie jest to nic specjalnego — czarny tekst na domyślnym białym lub szarym tle. To zwyczajna, surowa strona, na której nie użyto jeszcze żadnego znacznika odpowiedzialnego za formatowanie jej układu oraz wyglądu poszczególnych elementów. Niemniej jednak to już Twoja pierwsza strona! Ć W I C Z E N I E
2.6
Ciało dokumentu
Korzystając z informacji zdobytych podczas lektury niniejszego podrozdziału, otwórz uprzednio przygotowany dokument HTML i sprawdź, czy w strukturze dokumentu uwzględniono znacznik , a jeżeli zajdzie taka potrzeba, dopisz go. Następnie pomiędzy znacznikami umieść dowolny tekst. Zapisz zmodyfikowany plik HTML. Jeżeli korzystasz z Notatnika, pamiętaj o tym, aby ustawić kodowanie na UTF-8. Następnie spróbuj otworzyć swoją pierwszą stronę WWW w przeglądarce i sprawdź efekt końcowy.
34
HTML5 • Ćwiczenia praktyczne Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
Twórcy piątej specyfikacji języka HTML dokonali analizy struktury witryny i wyróżnili w niej kilka dodatkowych sekcji, a następnie przypisali do nich nowe znaczniki, za pomocą których będziemy mogli precyzyjniej kontrolować finalny wygląd strony. Nowe znaczniki nie wpływają bezpośrednio na wygląd zawartych w nich danych, ale pozwalają zgrupować szereg innych elementów i łatwiej nimi zarządzać. Lista nowych znaczników wraz z wyjaśnieniami znajduje się poniżej. T — pomiędzy znacznikami powinna być zamieszczona część strony, która ma charakter nagłówka i rozpoczyna Twoją stronę. T — pomiędzy znacznikami powinny być zamieszczone elementy odpowiedzialne za główne menu nawigacyjne witryny. T — pomiędzy znacznikami zamieszczamy zestaw elementów tworzących spójny artykuł (np. nagłówek i blok tekstu). T — pomiędzy znacznikami zamieszczamy wybraną zawartość części witryny tworzącą spójną sekcję, np. tytuł i wstęp artykułu widoczny na stronie głównej. T — pomiędzy znacznikami powinna być zamieszczona część strony, która jest elementem uzupełniającym główną strukturę strony. T — pomiędzy znacznikami powinna być zamieszczona część strony, która ma charakter stopki i zamyka Twoją stronę. Na rysunku 2.4 przedstawiłem schemat układu strony WWW wykorzystującej nowe znaczniki. Natomiast poniżej znajduje się prosty przykładowy listing kodu, który odpowiada za stworzenie układu strony z rysunku 2.4. Pragnę w tym miejscu zauważyć, że w dalszej części niniejszej książki będziemy próbować wspólnie stworzyć stronę o układzie podobnym do tego z powyższego rysunku. Oczywiście do realizacji tego zadania wykorzystamy nowe znaczniki strukturalne.
Rozdział 2. • Struktura dokumentu HTML5
35
Rysunek 2.4. Schemat układu strony z wykorzystaniem nowych znaczników
Przykładowy tytuł
Ć W I C Z E N I E
2.7
Struktura dokumentu
Korzystając z informacji zdobytych podczas lektury niniejszego podrozdziału, otwórz uprzednio przygotowany dokument HTML i pomiędzy wstaw nowe znaczniki odpowiedzialne za stworzenie struktury strony WWW. Zmodyfikowana struktura dokumentu powinna wyglądać mniej więcej tak:
Tytuł przykładowej strony
36
HTML5 • Ćwiczenia praktyczne
Zapisz zmodyfikowany plik HTML. Jeżeli korzystasz z Notatnika, pamiętaj o tym, aby ustawić kodowanie na UTF-8. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
3 Elementy języka HTML5 W niniejszym rozdziale zajmiemy się poszczególnymi elementami języka HTML5, z którymi przyjdzie nam pracować podczas tworzenia własnej strony WWW. Kolejne podrozdziały zostały podzielone tak, by ułatwić grupowanie i opisanie w jednym miejscu tych znaczników, które mają ze sobą związek. Wybrany przeze mnie podział ma następującą postać: T Komentarze, T Elementy blokowe, T Elementy wstawiane, T Elementy osadzone, T Hiperłącza, T Tabele, T Formularze.
Komentarze W trakcie pracy nad dużymi dokumentami stosuj komentarze. Są bardzo przydatne, zwłaszcza gdy nad jedną stroną pracuje kilku projektantów. Pozwoli to uniknąć zbędnego zamieszania. Komentarze bardzo ułatwiają poruszanie się po samym kodzie. Do umieszczenia komentarza służy:
Mam nadzieję, że zrozumiałeś, o co chodzi. Pamiętaj jednak, że zbyt dużo zagnieżdżonych tabel na stronie może spowodować spore zamieszanie oraz znaczne zwiększenie objętości pliku. Starsze przeglądarki
Rozdział 3. • Elementy języka HTML5
95
Rysunek 3.27. Przykład zagnieżdżonych tabel
charakteryzowały się ciekawym podejściem do tabel: otóż wczytywały one strony i w chwili, gdy napotkały znacznik
, czekały na odpowiedni znacznik zamykający
i dopiero wtedy pokazywały zawartość tabeli. W związku z tym, nawet gdy przeglądarka wczytała już całą zagnieżdżoną tabelę, to nie wyświetlała jej do chwili, w której został pobrany z sieci ostatni znacznik zamykający tabeli nadrzędnej. W efekcie oglądający miał wrażenie, że strona wczytuje się bardzo powoli. Ć W I C Z E N I E
3.21
Zagnieżdżanie tabel
Stwórz prostą stronę i umieść w niej zagnieżdżoną tabelę. Aby wykonać to ćwiczenie, postępuj zgodnie z instrukcjami zamieszczonymi w kolejnych podpunktach. 1. Otwórz plik przygotowany w ćwiczeniu 2.6. 2. Pomiędzy znacznikami umieść w pliku zagnieżdżone tabele. Proponuję, abyś do testów wybrał tabelę widoczną na rysunku 3.27. W tym celu skorzystaj ze znaczników
,
,
. 3. Zapisz dokument i otwórz go w przeglądarce. Spróbuj przetestować działanie swoich odsyłaczy. Pamiętaj, że w tej chwili Twoja tabela nie będzie miała widocznych krawędzi. Nad tym popracujemy w dalszej części niniejszej książki. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
96
HTML5 • Ćwiczenia praktyczne
Dodatkowe elementy tabeli Opisywana specyfikacja języka HTML wprowadza trzy nowe znaczniki związane z tabelami. Mam tutaj na myśli: , ´ oraz . Znaczniki te służą do wyodrębnienia nagłówka, ciała i stopki tabeli i są bardzo przydatne przy formatowaniu za pomocą kaskadowych arkuszy stylów. Poniżej przedstawiłem prosty listing, na którym widać przykład użycia wspomnianych znaczników. Nie przewidziałem użycia obrazka ani ćwiczenia, ponieważ na tym etapie nie są one konieczne, gdyż opisywane znaczniki nie mają na razie żadnego wpływu na wygląd strony WWW.
nagłówek tabeli
ciało tabeli
stopka tabeli
Podpis tabeli Każda tabela może zawierać podpis, który możemy stworzyć na kilka sposobów, wykorzystując do tego różne znaczniki dostępne we wstępnej wersji piątej specyfikacji języka HTML. Najprostszym sposobem uzyskania podpisu jest element , który powinien znaleźć się pomiędzy znacznikami
.
Tabela 1.1. Każda tabela może zawierać podpis
Rozdział 3. • Elementy języka HTML5
97
1
2
3
Drugim sposobem uzyskania podpisu tabeli jest wykorzystanie omawianego już znacznika oraz . Przykład takiego działania znajduje się poniżej. Natomiast na rysunku 3.28 zamieściłem efekt działania obu metod.
Tabela 1.1. Każda tabela może zawierać podpis
1
2
3
Rysunek 3.28. Na górze tabela z podpisem uzyskanym za pomocą znacznika . Na dole ta sama tabela z podpisem stworzonym przy użyciu znacznika i
Różnice pomiędzy oboma sposobami dodawania podpisu do tabeli są niewielkie, ale można je zauważyć na rysunku 3.28. Mam tutaj na myśli to, że w przypadku znacznika podpis jest domyślnie wyśrodkowany. Aby uzyskać taki sam efekt w drugim przypadku, niezbędne jest wykorzystanie kaskadowych arkuszy stylów.
98
HTML5 • Ćwiczenia praktyczne
Poza tym warto zapamiętać, że w drugim przypadku umieszczenie elementu bezpośrednio po otwierającym znaczniku spowoduje wyświetlenie podpisu nad tabelą. Natomiast umieszczenie tego samego elementu przed zamykającym znacznikiem wymusi pojawienie się podpisu pod tabelą. W przypadku pierwszej metody zmiana położenia podpisu musi się odbyć przy wykorzystaniu kaskadowych arkuszy stylów. Znaczniki oraz możemy wykorzystać również do dodania podpisu pod innymi elementami strony WWW, np. pod rysunkiem, filmem albo listingiem kodu programistycznego. Ć W I C Z E N I E
3.22
Podpis tabeli
Stwórz prostą stronę i umieść na niej tabelę z podpisem. Aby wykonać to ćwiczenie, postępuj zgodnie z instrukcjami zamieszczonymi w kolejnych podpunktach. 1. Otwórz plik przygotowany w ćwiczeniu 3.19. 2. Odszukaj w kodzie strony znaczniki odpowiedzialne za tabelę. Następnie korzystając z jednej z opisanych w niniejszym podrozdziale metod, dodaj podpis tabeli. 3. Jeżeli masz ochotę, możesz spróbować skopiować kod tabeli i wstawić go ponownie w tym samym dokumencie HTML, a następnie dodać podpis, wykorzystując drugą metodę. 4. Zapisz dokument i otwórz go w przeglądarce. Spróbuj przetestować działanie podpisu. Pamiętaj, że w tej chwili Twoja tabela nie będzie miała widocznych krawędzi. Nad tym popracujemy w dalszej części niniejszej książki. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
Rozdział 3. • Elementy języka HTML5
99
Formularze W naszym życiu wypełniamy dziesiątki, jeśli nie tysiące formularzy. Wynika to stąd, że jest to najprostsza forma zdobywania ściśle określonych informacji. Formularz jest używany w bardzo wielu przypadkach. Za jego pomocą zdobywamy informacje o odwiedzających stronę, tworzymy ankiety, książki gości, a nawet zgłaszamy zapytanie do internetowych serwisów katalogujących czy dokonujemy zakupów w sieciowych centrach handlowych. Język HTML posiada zestaw znaczników odpowiedzialnych za generowanie elektronicznych formularzy. Dodatkowo piąta odsłona specyfikacji HTML wprowadza kilka bardzo przydatnych elementów, które znacznie upraszczają budowę własnych formularzy. Jedną z najważniejszych i długo oczekiwanych nowości jest funkcja sprawdzania zawartości danych wprowadzonych do formularza.
Ramy formularza Ramy formularzy na stronie definiuje znacznik . Zdążyłeś już poznać budowę znaczników, więc możesz się spodziewać, że posiada szereg atrybutów — oczywiście, nie mylisz się. Pierwszym atrybutem tego znacznika jest action=" ", który określa rodzaj akcji, jaka ma zostać wykonana po naciśnięciu przycisku OK. Jako wartość action=" " można podać adres odpowiedniego skryptu bądź adres e-mail. Dalej mamy atrybut method=" ", gdzie określa się metodę, która zostanie użyta do wykonania formularza. Do wyboru mamy dwie metody: post i get. Pierwsza z nich, post, służy do zgłaszania długich żądań do serwera, natomiast get zgłasza krótkie żądania. Jest to dość ogólnikowe wyjaśnienie, ale uznałem, że zupełnie wystarczy dla Twoich potrzeb. Jeśli zajmiesz się pisaniem skryptów, wtedy będziesz musiał poszerzyć wiadomości z tego zakresu. Pora na przykład definicji ram formularza:
...
Tak ustawiony formularz wyśle na adres e-mail zawartość wszystkich pól, jakie wstawimy w dalszej części niniejszej publikacji.
100
HTML5 • Ćwiczenia praktyczne
Piąta specyfikacja języka HTML wprowadza dodatkowe atrybuty znacznika . Każda współczesna przeglądarka posiada mechanizmy pozwalające na automatyczne zapamiętywanie danych wprowadzonych do formularzy, a następnie wykorzystanie ich w przyszłości do automatycznego wypełniania innych formularzy. Rozwiązanie to jest bardzo wygodne, ale niestety często może być przyczyną poważnych problemów z wyciekiem ważnych danych. Dlatego w propozycji piątej specyfikacji języka HTML dodano nowy atrybut o nazwie autocomplete=" ", który może przybierać wartości on lub off. Element ten pozwala na kontrolowanie mechanizmu autouzupełniania formularzy. Dokładniej mówiąc, określa on, czy przeglądarka może zapisać dane wprowadzone do formularza do swojej „pamięci”. Domyślnym ustawieniem każdego formularza jest wartość on. Innymi słowy, jeżeli do formularza nie dodasz atrybutu autocomplete="on", to i tak funkcja ta będzie włączona. Ustawienie wartości off spowoduje, że przeglądarka nie będzie zapamiętywać danych wprowadzonych do formularza. Atrybut autocomplete=" " może występować również w odniesieniu do konkretnego pola. Dzięki temu możesz np. zablokować zapamiętywanie haseł lub numerów kart kredytowych, pozwalając jednocześnie na pamiętanie adresu czy nazwiska. Listing widoczny poniżej wyłącza automatyczne wypełnianie pól formularza danymi przechowywanymi w pamięci przeglądarki:
...
Drugi nowy atrybut nosi nazwę novalidate=" " i przybiera tylko jedną wartość, novalidate. Ten element pozwala wyłączyć domyślne sprawdzanie zawartości wysyłanego formularza.
...
Mówiąc prościej, jeżeli w kodzie strony w znaczniku znajdzie się atrybut novalidate="novalidate", formularz zostanie wysłany bez sprawdzania zawartości. W praktyce oznacza to, że wysłany zostanie również formularz z błędnymi danymi lub z pustymi polami.
Rozdział 3. • Elementy języka HTML5
101
Pola typu input Formularz elektroniczny tak jak jego papierowy odpowiednik składa się z odpowiednich pól służących do różnych celów. Pierwsza grupa pól formularza to input — czyli pola pozwalające wprowadzić określone typy danych. Oto przykład ogólnej definicji:
Przyjrzyjmy się bliżej poszczególnym atrybutom znacznika . Pierwszy z nich nosi nazwę type=" " i określa rodzaj pola formularza. Do wyboru mamy następujące typy pól: T type="text" — wstawia zwykłe pole tekstowe. T type="search" — zwykłe pole tekstowe wykorzystywane podczas budowy wyszukiwarki osadzonej na stronie WWW. Cechą charakterystyczną pola typu search jest to, że po wprowadzeniu treści pojawia się znak x, za pomocą którego możemy sprawnie usunąć wpisany tekst (rysunek 3.29). Rysunek 3.29. Przykład wykorzystania pola typu search. Na pierwszym rysunku pole jest puste. Drugie pole pokazuje znak x, który pozwala na szybkie wyczyszczenie jego zawartości T type="tel" — pole tekstowe służące do zbierania informacji
na temat numeru telefonu. T type="url" — pole tekstowe wykorzystywane do wprowadzania adresu strony WWW w formacie http://www.adresstrony.pl. T type="email" — pole tekstowe wykorzystywane do wprowadzania adresu e-mail. T type="datetime" — pole do wprowadzania liczb oznaczających datę i czas dla strefy UTC w formacie rrrr-mm-ddThh:mmZ. Jeżeli przeglądarka poprawnie obsługuje ten element, to po kliknięciu
102
HTML5 • Ćwiczenia praktyczne
tego pola kursorem myszy powinien się pojawić wygodny kalendarz, z którego możemy wybrać odpowiednią datę (rysunek 3.30). Rysunek 3.30. Przykład poprawnej obsługi pola
w przeglądarce Opera
T type="date" — pole do wprowadzania liczb oznaczających datę
w formacie rrrr-mm-dd (np. 2010-12-16). Jeżeli przeglądarka poprawnie obsługuje ten element, to po kliknięciu tego pola kursorem myszy powinien się pojawić wygodny kalendarz, z którego możemy wybrać odpowiednią datę. Kalendarz jest podobny do tego z rysunku 3.30. T type="month" — pole do wprowadzania liczb oznaczających datę w formacie rrrr-mm (np. 2010-12). Jeżeli przeglądarka poprawnie obsługuje ten element, to po kliknięciu tego pola kursorem myszy powinien się pojawić wygodny kalendarz, z którego możemy wybrać odpowiednią datę. Kalendarz jest podobny do tego z rysunku 3.30. T type="week" — pole do wprowadzania liczb oznaczających datę w formacie rrrr-numer tygodnia (np. 2010-W50). Jeżeli przeglądarka poprawnie obsługuje ten element, to po kliknięciu tego pola kursorem myszy powinien się pojawić wygodny kalendarz, z którego możemy wybrać odpowiednią datę. Kalendarz jest podobny do tego z rysunku 3.30. T type="time" — pole do wprowadzania liczb oznaczających czas w formacie hh:mm:ss (np. 23:59:59). Jeżeli przeglądarka poprawnie obsługuje ten element, to obok pola powinny pojawić się dodatkowe przyciski, za pomocą których możemy ustawić odpowiednią godzinę (rysunek 3.31).
Rozdział 3. • Elementy języka HTML5
103
Rysunek 3.31. Przykład poprawnej obsługi pola w przeglądarce Opera T type="datetime-local" — pole do wprowadzania liczb
oznaczających datę i czas w formacie rrrr-mm-ddThh:mm (np. 2010-12-16T14:55). Jeżeli przeglądarka poprawnie obsługuje ten element, to po kliknięciu tego pola kursorem myszy powinien się pojawić wygodny kalendarz, z którego możemy wybrać odpowiednią datę (rysunek 3.30). T type="number" — pole wykorzystywane do wprowadzania liczb. Jeżeli przeglądarka poprawnie obsługuje ten element, to obok pola powinny się pojawić dodatkowe przyciski, za pomocą których możemy ustawić odpowiednią wartość liczbową (rysunek 3.31). T type="range" — specjalny suwak (rysunek 3.32) do oznaczania wartości liczbowej o znaczeniu czysto semantycznym. Suwak można wykorzystać do zbierania danych na temat stopnia zadowolenia klienta. Warto pamiętać o tym, że element ten możemy uzupełnić o kilka dodatkowych atrybutów, przez co pobrane dane będziemy w stanie przeliczyć na konkretne wartości. Więcej na ten temat znajdziesz przy okazji opisu atrybutów min=" ", max=" " oraz step=" ". Rysunek 3.32. Przykład wykorzystania nowego rodzaju pola T type="color" — pole do wprowadzania informacji na temat koloru
w formacie sRGB. W przeglądarce, która poprawnie obsługuje ten element, po kliknięciu pola powinna się pojawić paleta wyboru kolorów podobna do tej, jaką przedstawia rysunek 3.33. T type="image" — pole wykorzystywane jako przycisk graficzny z własnym elementem graficznym w postaci obrazka. Warto zapamiętać, że w parze z przyciskiem graficznym występuje
104
HTML5 • Ćwiczenia praktyczne
Rysunek 3.33. Paleta kolorów widoczna w oknie przeglądarki Opera
T
T
T T
T T T T
atrybut alt=" ", w którym podajemy tekst alternatywny, na wypadek gdyby z jakichś powodów obrazek się nie pojawił. Drugim obowiązkowym atrybutem jest src=" ", który służy do określenia ścieżki dostępu i nazwy pliku obrazka mającego pełnić funkcję przycisku. type="checkbox" — wstawia małe okienka, które możemy dowolnie zaznaczać. To pole daje nam możliwość zaznaczenia więcej niż jednej odpowiedzi. type="radio" — pole podobne w działaniu do checkbox, z tym że możemy wybrać zaledwie jedną z wielu odpowiedzi. Pamiętaj, że wszystkie pola tego typu muszą mieć identyczną wartość atrybutu name. type="password" — pole odpowiedzialne za podanie hasła. Wpisywany tekst jest zamieniany na gwiazdki. type="file" — pozwala dołączyć dowolny plik tekstowy do formularza. W parze z tym polem formularza może występować jeszcze atrybut multiple="multiple" pozwalający użytkownikowi na wskazanie więcej niż jednego pliku, który planuje załączyć do formularza. type="hidden" — wstawia zwykłe pole tekstowe niewidoczne na stronie. type="submit" — wstawia przycisk do formularza; odpowiada za wykonanie action zdefiniowanego dla formularza. type="reset" — przycisk, który czyści wszystkie pola formularza. type="button" — określa przycisk dowolnego przeznaczenia.
W praktyce dodanie klasycznego pola tekstowego wymaga kodu HTML widocznego poniżej. Oczywiście przykładowy kod może być uzupełniony o szereg dodatkowych atrybutów, które opisałem w dalszej części niniejszego podrozdziału.
Rozdział 3. • Elementy języka HTML5
105
Na rysunku 3.34 zamieściłem przykład wszystkich pól typu input wraz z przykładowymi treściami.
Rysunek 3.34. Przykład wykorzystania pól typu input
Kolejny atrybut, name=" ", określa nazwę dla danego pola. Pole jest dość przydatne przy analizowaniu przesłanych danych bądź przy konfiguracji skryptów. Dla wszystkich dostępnych pól wartość tego atrybutu musi być różna. Pamiętaj o jedynym wyjątku, jakim jest pole typu radio — w tym przypadku wszystkie pola wchodzące w skład jednej grupy muszą mieć identyczną nazwę. Oczywiście na stronie może być kilka grup pól i każda grupa powinna mieć inną nazwę.
Przykład definicji pola typu radio z identyczną wartością atrybutu name=" " widać poniżej. W kolejnych podrozdziałach znajdziesz wyjaśnienie znaczenia nowych znaczników.
Rozmiar pizzy
Mała
Średnia
106
HTML5 • Ćwiczenia praktyczne
Duża
Trzecim ważnym atrybutem jest value=" ", który wstawia w dane pole zadeklarowaną wartość. Atrybutu tego można użyć do opisania pól formularza bądź zadeklarowania jakiejś domyślnej wartości dla danego pola. W przykładzie widocznym poniżej dopasowano odpowiednie wartości do konkretnych pól, które zostaną przekazane dalej po wysłaniu formularza.
Rozmiar pizzy
Mała
Średnia
Duża
Jeżeli atrybutu value=" " użyjemy z klasycznym polem tekstowym, to za jego pomocą możemy zasugerować jakiś domyślny tekst, który pojawi się w określonym miejscu. W ten sposób możemy wskazać pewne dane, które powinny się znaleźć w formularzu. Oczywiście użytkownik będzie mógł wprowadzić niezbędne zmiany. Rysunek 3.35 przedstawia efekt działania poniższego kodu.
Rysunek 3.35. Przykład pola tekstowego z domyślnie podaną wartością
Atrybut size=" " służy do określenia liczby znaków mieszczących się w widocznej części pola tekstowego. Wpisanie dłuższego ciągu znaków w takie pole spowoduje przewinięcie jego zawartości; zawartość będzie pokazywana jedynie w małej części.
Rozdział 3. • Elementy języka HTML5
107
Opcja maxlength=" " ogranicza liczbę znaków, jakie można wpisać do zwykłego pola tekstowego, dla którego została zadeklarowana. Oznacza to, że do pola o pojemności dwudziestu znaków nie wpiszesz ich więcej.
Następnym atrybutem, o którym wspomniałem już przy okazji omawiania znacznika , jest autocomplete=" ". Element ten może przybierać wartości on/off i ma takie samo znaczenie jak we wcześniejszym opisie. Użycie atrybutu autocomplete="" w odniesieniu do konkretnego znacznika pozwoli na sterowanie wyłącznie jego właściwościami. Mówiąc prościej, możesz na przykład włączyć zapamiętywanie danych wprowadzanych do całego formularza i jednocześnie wyłączyć je w odniesieniu do wybranego pola. Poniżej przykład, w którym przeglądarka będzie mogła zapamiętać wszystkie pola formularza z wyjątkiem hasła.
Login
Hasło
Kolejnym atrybutem wprowadzonym przez piątą specyfikację języka HTML jest autofocus="autofocus". Element ten pozwala zaznaczyć zawartość pola, do którego został przypisany. Zaznaczenie pojawia się już w chwili wczytania strony do przeglądarki. Na rysunku 3.36 widać efekt działania poniższego kodu.
Rysunek 3.36. Efekt działania atrybutu autofocus="autofocus"
W przypadku pól typu radio lub checkbox może zajść potrzeba oznaczenia któregoś z nich jako naszej propozycji. W ten sposób możemy użytkownikowi strony zasugerować jakieś rozwiązanie (np. wysyłkę za pośrednictwem firmy kurierskiej). Do zaznaczania danego pola służy atrybut checked="checked". Rysunek 3.37 przedstawia efekt działania poniższego kodu.
108
HTML5 • Ćwiczenia praktyczne
Rysunek 3.37. Efekt działania atrybutów: checked= ´"checked" — druga opcja
Opcje wysyłki
Poczta ´Polska
Kurier
Paczkomat
Korzystając z atrybutu disabled="disabled", możemy czasowo wyłączyć wybrane pola (z wyjątkiem pola type="hidden"). Rozwiązanie to przydaje się w sytuacji, gdy zależy nam na czasowym wyłączeniu wybranego pola, ale nie chcemy go usuwać ze strony. Po dodaniu atrybutu disabled="disabled" pole nadal będzie widoczne, ale nie będzie można do niego niczego wpisać. W poniższym przykładzie czasowo wyłączyłem opcję dostawy za pośrednictwem paczkomatów.
Opcje wysyłki
Poczta ´Polska
Kurier
Paczkomat
Jeżeli za pomocą znacznika chcesz stworzyć przycisk z wykorzystaniem własnego obrazka, możesz dodatkowo przy użyciu atrybutów height=" " oraz width=" " określić wysokość i szerokość elementu. Jako wartość każdego z atrybutów możesz podać wymiary liczone w pikselach lub procentach.
Rozdział 3. • Elementy języka HTML5
109
Dzięki kolejnym atrybutom możesz przypisać domyślne wartości dla wybranych pól przeznaczonych do prezentacji cyfr oraz pola typu range. Dzięki temu użytkownik wypełniający formularz będzie mógł udzielić precyzyjniejszych odpowiedzi. Tym razem wyjątkowo zaczniemy od konkretnego przykładu, a dopiero później omówię nowe atrybuty.
Dzięki atrybutom min=" " oraz max=" " możemy określić minimalną i maksymalną wartość, która występuje w danym polu. Następnie za pomocą atrybutu step=" " określamy skok, o jaki zmieniana będzie wartość. W powyższym przykładzie wyświetlone zostanie pole numeryczne ze zdefiniowanymi wartościami od 0 do 10. Zmiana wartości będzie możliwa ze skokiem co 2. Dodatkowo atrybut value="6" ustawia domyślną wartość pola na 6. Na rysunku 3.38 widać przykład wykorzystania omawianego atrybutu. Rysunek 3.38. Przykład wykorzystania atrybutów min=" ", max=" " oraz step=" "
W piątej specyfikacji języka HTML znajdziemy również atrybut list=" ". W połączeniu z dodatkowymi znacznikami ´ oraz pozwala on przypisać do pola tekstowego wartości, które będzie można łatwo wybrać z przygotowanej listy. Wynikiem takiego działania będzie coś w rodzaju klasycznej listy rozwijanej. Kliknięcie pola formularza spowoduje otwarcie listy, na której zobaczymy propozycje przygotowane przez autora formularza. Oczywiście wybór opcji nie jest obowiązkowy i użytkownik będzie mógł wprowadzić inną wartość. Spróbujmy przeanalizować przykład widoczny poniżej:
polski angielski
110
HTML5 • Ćwiczenia praktyczne niemiecki
Zwróć uwagę, że atrybut list=" " znacznika zawiera taką samą wartość jak atrybut id=" " znacznika . Taki stan rzeczy jest bardzo ważny i pozwala na połączenie pola formularza z danymi podanymi pomiędzy znacznikami . Na rysunku 3.39 widać listę rozwijaną przygotowaną na podstawie listingu widocznego powyżej. Rysunek 3.39. Przykład listy rozwijanej ze zdefiniowanymi wartościami
Wspomniałem już o tym, że wstępna wersja piątej specyfikacji języka HTML wprowadza sprawdzanie zawartości pól formularza oraz pozwala określać, które z pól są obowiązkowe. Oznaczanie obowiązkowych pól odbywa się za pomocą atrybutu required="required":
Jeżeli użytkownik strony podczas wypełniania formularza przeoczy pole z nadanym atrybutem required="required" i spróbuje wysłać taki formularz, jego oczom ukaże się stosowny komunikat (rysunek 3.40).
Rysunek 3.40. Komunikat informujący o tym, że wymagane pole nie zostało wypełnione
Kolejną ciekawostką wprowadzoną przez piątą wersję języka HTML jest atrybut placeholder=" ", za pomocą którego możemy wprowadzić wartość, jaka domyślnie pojawi się w polu formularza, ale zniknie natychmiast po kliknięciu go kursorem myszy. Rozwiązanie takie przydaje się bardzo często do tego, aby powiadomić użytkownika o tym, co ma wpisać w dane pole. Poniżej znajduje się przykład wykorzystania atrybutu:
111
Rozdział 3. • Elementy języka HTML5
Przykład działania atrybutu placeholder=" " był widoczny już na rysunkach 3.29 i 3.35, dlatego zrezygnowałem w tym miejscu z zamieszczania wizualizacji. Język HTML w odniesieniu do pól formularza pozwala również na umieszczenie jakiejś treści lub określenie stanu pola formularza, a następnie zablokowanie możliwości jego zmiany. Przyjrzyj się przykładowi widocznemu poniżej:
Atrybut value=" " odpowiada za wyświetlenie w polu domyślnej treści. Natomiast za pomocą readonly="readonly" możemy zablokować edycję zawartości pola. Zapamiętaj, że większość elementów omówionych w niniejszym podrozdziale możesz ze sobą łączyć. Innymi słowy, dla tego samego pola możesz na przykład ustawić atrybuty placeholder=" ", name=" " i list=" ". Zanim jednak puścisz wodze fantazji, zapoznaj się z tabelą 3.4 i sprawdź, które atrybuty mogą występować z danymi typami pól formularza.
hidden
text, search, url, tel
e-mail
password
datetime, time, date, month, week, time
datetime-local, number
range
color
checkbox, radio
file
submit
image
reset
accept
-
-
-
-
-
-
-
-
-
Tak
-
-
-
alt
-
-
-
-
-
-
-
-
-
-
-
Tak
-
autocomplete
Tabela 3.4. Zestawienie atrybutów znaczników odpowiedzialnych za tworzenie formularzy
Pole typu select Kolejną grupą pól formularza jest select. Pole tego typu pozwala na wybranie jednej lub kilku pozycji z listy. Jego konstrukcja wygląda następująco:
pierwsza pozycja druga pozycja trzecia pozycja
W przypadku select podobnie jak przy polach typu input możemy określić jego nazwę — atrybut name=" ". Znacznik definiuje jedną pozycję z listy. Taka definicja pola typu select pozwala na wybranie tylko jednej pozycji z naszej listy. Aby dać możliwość wyboru kilku, definicję musisz uzupełnić o atrybut multiple="multiple", zgodnie z tym, co prezentuje podany przykład.
pierwsza pozycja druga pozycja trzecia pozycja
Rozdział 3. • Elementy języka HTML5
115
W przypadku bardziej rozbudowanych pól typu select, w których zebrano wiele różnych opcji, możemy zastosować dodatkowy podział na kategorie. Podział jest jedną z kolejnych nowości wprowadzonych przez piątą odsłonę języka HTML i jest możliwy dzięki znacznikowi .
Wybierz utwór z listy
1. Wspaniała nowina 2. Zabierz mu wszystko 3. Krew Boga 4. Mędracy
1. "Break On Through (To the Other ´Side)" 2. "Soul Kitchen" 3. "The Crystal Ship" 4. "Twentieth Century Fox"
Na rysunku 3.41 widać efekt działania przykładowego kodu. Zwróć uwagę, że wartości podane przy użyciu znacznika domyślnie są wyświetlone za pomocą pogrubionej czcionki i nie da się ich zaznaczyć na liście. Rysunek 3.41. Przykład podziału zawartości pola typu select na kilka sekcji
Pola typu select mogą posiadać dodatkowo kilka zdefiniowanych atrybutów, które pozwalają na uzyskanie jeszcze większej elastyczności podczas tworzenia formularzy na stronach WWW. Zacznijmy od atrybutu size=" ", który określa, ile pozycji z listy ma być widocznych na ekranie. Podanie zmiennej jako większej lub równej liczbie pozycji zdefiniowanych w ramach pola pozwoli nam wyeliminować pasek przewijania pojawiający się z boku pola.
116
HTML5 • Ćwiczenia praktyczne
pierwsza pozycja druga pozycja trzecia pozycja czwarta pozycja piąta pozycja
Na rysunku 3.42 widać przykład pola typu select w różnych wariantach. Rysunek 3.42. Przykład różnych zastosowań pola select
Kolejnymi atrybutami, których możemy używać razem z polami typu select, są omówione już wcześniej elementy autofocus=" ", disabled=" " oraz reguired=" ". Poniżej w skrócie przypominam, do czego możemy je wykorzystać. Natomiast ich pełny opis wraz z obszernymi przykładami znajdziesz w poprzednim podrozdziale. T autofocus=" " — pozwala oznaczyć pole w chwili wczytywania strony przez przeglądarkę. T disabled=" " — pozwala czasowo wyłączyć możliwość edycji zawartości pola. T required=" " — określa, że dane pole jest wymagane do wysłania formularza. Jeżeli użytkownik nie wypełni pola, formularz nie zostanie wysłany.
Pole typu textarea Twórcy języka HTML oddali do naszej dyspozycji jeszcze jeden rodzaj pola, a mianowicie textarea. Służy ono do wprowadzania większej ilości danych. Znacznik ma następującą konstrukcję: napisz coś do ´mnie
Umieszczając tekst pomiędzy znacznikami , możemy zasugerować coś potencjalnemu użytkownikowi formularza. Rozwiązanie to jest podobne w działaniu do atrybutu value=" " oma-
Rozdział 3. • Elementy języka HTML5
117
wianego przy poprzednich znacznikach typu input. Poprzez dodanie atrybutów rows=" " i cols=" " możesz regulować wielkość pola. Rysunek 3.43 przedstawia przykład wykorzystania pola typu textarea. Pod obrazkiem znajdziesz również przykładowy listing odpowiedzialny za stworzenie formularza.
Rysunek 3.43. Przykład wykorzystania pola typu textarea
Zostaw swój komentarz
Imię:
E-mail:
118
HTML5 • Ćwiczenia praktyczne
Komentarz:
Pola typu textarea wykorzystują jeszcze kilka dodatkowych atrybutów, które zwiększają ich funkcjonalność. Poszczególne elementy pojawiły się w opisach zamieszczonych na poprzednich kartach niniejszej strony. Dlatego teraz pozwoliłem sobie tylko je przypomnieć i opatrzyć jedynie krótkimi wyjaśnieniami. T autofocus=" " — pozwala oznaczyć pole w chwili wczytywania strony przez przeglądarkę. T disabled=" " — pozwala czasowo wyłączyć możliwość edycji zawartości pola. T required=" " — określa, że dane pole jest wymagane do wysłania formularza. Jeżeli użytkownik nie wypełni pola, formularz nie zostanie wysłany. T maxlength=" " — ogranicza liczbę znaków, jakie można wpisać do pola textarea, dla którego została zadeklarowana. Oznacza to, że do pola o pojemności dwustu znaków nie wpiszesz ich więcej. T placeholder=" " — za pomocą tego elementu możemy wprowadzić tekst, który domyślnie pojawi się w polu formularza, ale zniknie natychmiast po kliknięciu tego pola kursorem myszy. Rozwiązanie takie przydaje się bardzo często do tego, aby powiadomić użytkownika o tym, co ma wpisać w danym polu. T readonly=" " — za pomocą tego elementu możemy zablokować możliwość edycji pola. Rozwiązanie to może się przydać na przykład w sytuacji, gdy pomiędzy znacznikami umieścimy regulamin, z którym każdy musi się zapoznać przed wysłaniem formularza. Rzeczą oczywistą jest, że taki regulamin nie powinien dać się edytować i zmieniać, ale jednocześnie musi być widoczny i przesyłany razem z formularzem. T wrap=" " — odpowiada za określenie podziału treści wpisanych do pola podczas wysyłania formularza. Wartość hard wymusza dodanie podziału wierszy. Natomiast wartość soft pozostawia tekst bez zmian.
Rozdział 3. • Elementy języka HTML5
119
Przesyłanie treści formularza Na samym początku przy określaniu ram formularza skorzystałem z możliwości wysłania go e-mailem. Jest to najłatwiejsze rozwiązanie w zakresie obsługi formularza, ale efekt, jaki uzyskamy, pozostawia wiele do życzenia. Dalej zamieszczam przykład wysłania formularza o następującej treści: Imię: BARTEK Płeć: Mężczyzna Wiek: Ponad 25 lat Treść: Zrobiliśmy niezłą stronę…
A oto wynik, jaki trafił na podany adres e-mail: imie=Bartek&plec=M%EA%BFczyzna&wiek=wiecej_25&tresc=Zrobili%9Cmy+ ´niez%B3%B9+stron%EA+…
Dokładnie tak będzie wyglądała poczta, którą otrzymamy. Forma jest raczej mało zadowalająca. Istnieją specjalne programy, które są w stanie przetworzyć całość na zrozumiałą postać, ale ich stosowanie mija się z celem i jest pracochłonne. Dlatego do obsługi zaleca się stosowanie odpowiednich skryptów, np. popularnego FormMail, które przetworzą odpowiednio wynik działania formularza, a otrzymana poczta będzie czytelna. Prawie każdy z rodzimych dostawców usług internetowych oferuje swoim klientom odpowiednie skrypty do obsługi formularzy. Bardzo wiele firm udostępnia takie skrypty bezpłatnie. Wystarczy ich poszukać, np. za pomocą Google (http://google.pl/).
Znaczniki porządkowe Pod pojęciem „znaczniki porządkowe” ująłem trzy znaczniki, za pomocą których możemy zgrupować kilka pól formularza, dodać podpis oraz opisy poszczególnych pól. Znacznik te nie są nowe, ale w piątej specyfikacji znacznie poszerzono ich możliwości, przez co korzystanie z nich nabrało dodatkowego sensu. Mam tutaj na myśli znaczniki , oraz . Zacznijmy od konkretnego przykładu. Na rysunku 3.44 widać efekt działania poniższego kodu:
120
HTML5 • Ćwiczenia praktyczne
Oceń nas
PrzeciętnieIdealnie
Rysunek 3.44. Efekt działania przykładowego kodu. Formularz ma własną ramkę i opis
Para znaczników odpowiada za dodanie obramowania grupującego jakąś część formularza. Natomiast znacznik służy do dołączania podpisu zlokalizowanego w ramce. Znacznik należy umieścić bezpośrednio po otwierającym znaczniku , przez co unikniemy problemów z prawidłowym wyświetlaniem etykiety. Dzięki obu znacznikom możemy sprawnie uporządkować rozbudowane formularze i pogrupować szereg pól tematycznie ze sobą powiązanych. Na przykład w dużym formularzu rejestracyjnym możemy zbierać m.in. dane adresowe, dane o wieku i płci oraz dane o preferencjach osoby korzystającej ze strony. Za pomocą omawianych znaczników możemy sprawnie pogrupować wszystkie pola w trzy grupy, przez co praca z formularzem będzie dużo przyjemniejsza dla osoby, która ma go wypełnić. Trzecim znacznikiem, który znalazł się w tym rozdziale, jest ´ służący do oznaczania tekstu będącego opisem pola formularza. Znacznik możemy stosować na dwa sposoby. Pierwsze rozwiązanie ma postać znaną z dotychczasowych przykładów. Pole formularza wraz z opisem znalazło się pomiędzy znacznikami . PrzeciętnieIdealnie
Natomiast drugi sposób nie był do tej pory prezentowany w niniejszej książce i wygląda następująco: Imię:
Rozdział 3. • Elementy języka HTML5
121
Zwróć uwagę na to, że do znacznika dodałem atrybut for=" " wraz z wartością, która bezpośrednio odnosi się do id=" " przypisanego do pola formularza. W obu przypadkach uzyskany efekt będzie podobny. Warto jednak pamiętać o tym, że jeżeli będziemy chcieli użyć kaskadowych arkuszy stylów do formatowania opisu pola, to wybór rozwiązania ma istotne znaczenie. W pierwszym przypadku przypisany styl obejmie swoim działaniem również samo pole, ponieważ zachodzi tutaj zjawisko dziedziczenia. Pole formularza będzie dziedziczyć style przypisane do elementu nadrzędnego, czyli do znacznika .
Pozostałe elementy Piąta specyfikacja języka HTML wprowadza jeszcze kilka nowych znaczników luźno związanych z formularzami. Na naszą uwagę zasługują trzy nowości: , oraz . Zacznijmy od znacznika , który pozwala umieścić na stronie graficzny wskaźnik pokazujący jakąś wartość liczbową. Poniżej znajduje się prosty przykład wykorzystania nowego znacznika, a pod nim na rysunku 3.45 widać efekt jego użycia:
Wyniki ankiety
Opcja 1:
Opcja 2:
Rysunek 3.45. Przykład wykorzystania znacznika
´
Za pomocą atrybutów min=" " oraz max=" " określamy przedział liczbowy, w którym będziemy się poruszać. Następnie korzystając z atrybutu value=" ", deklarujemy wartość z uprzednio określonego przedziału. Resztą zajmie się przeglądarka, która wyświetli odpowiedni element na stronie.
122
HTML5 • Ćwiczenia praktyczne
Drugi ze znaczników, o którym chciałem napisać, to ´. Ta nowość służy do graficznego obrazowania postępu wykonania jakiejś czynności. Znacznik jest tylko graficznym interpretatorem funkcji JavaScript odpowiedzialnych za obsługę m.in. upływu czasu.
Postęp: 0%
Ostatnim elementem, o którym chciałem wspomnieć przy okazji prezentacji formularzy, jest pole typu . Element ten pozwala zwrócić wyniki obliczeń. Listing widoczny poniżej to tylko prosty przykład użycia tego typu pola pochodzący ze specyfikacji języka HTML5, ale nic nie stoi na przeszkodzie, aby pole to wykorzystać w inny sposób. Rysunek 3.46 przedstawia efekt działania przykładowego kodu.
+ =
Rysunek 3.46. Przykład wykorzystania pola output
Zbiorcze ćwiczenie dla formularzy Z uwagi na to, że poszczególne pola formularza zwykle występują w parach oraz wymagają wykorzystania dodatkowych elementów, uznałem, iż w tym miejscu dodam zbiorcze ćwiczenie, które dotyczy wszystkich opisanych do tej pory pól. Celem ćwiczenia będzie stworzenie strony kontaktowej zawierającej prosty formularz kontaktowy. Ć W I C Z E N I E
3.23
Formularz kontaktowy
Stwórz prostą stronę i umieść na niej formularz kontaktowy. Aby wykonać to ćwiczenie, postępuj zgodnie z instrukcjami zamieszczonymi w kolejnych podpunktach.
Rozdział 3. • Elementy języka HTML5
123
1. Otwórz plik przygotowany w ćwiczeniu 2.6. 2. Pomiędzy znacznikami umieść swój formularz. 3. W pierwszej kolejności dodaj ramy formularza oraz określ sposób
wysyłki i ukryte pola niezbędne do tego, aby wysłać formularz. Wystarczy, że w kodzie swojej strony umieścisz poniższy listing.
4. Dodaj dwa pola typu input. Pierwsze z nich opisz jako Imię, 5. 6.
7. 8.
a drugie jako e-mail. Dodaj pole typu textarea. W tym miejscu będzie można wprowadzić treść wiadomości. Skorzystaj ze znaczników oraz , aby zgrupować pola formularza tak, by wyglądał podobnie do tego z rysunku 3.43. Zapisz dokument i otwórz go w przeglądarce. Spróbuj uzupełnić dostępne pola i wysłać formularz. Jeżeli masz ochotę, spróbuj dodać kolejne pola formularza. Możesz przetestować działanie funkcji sprawdzania poprawności danych wpisanych do formularza. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
124
HTML5 • Ćwiczenia praktyczne
4 Kaskadowe arkusze stylów Pisząc o języku HTML5, nie sposób pominąć kaskadowych arkuszy stylów. Właściwie bez CSS nie da się obecnie zrobić ciekawie wyglądającej strony, która byłaby przy tym zgodna ze specyfikacją tych języków. Na początku wyjaśnijmy, co to są te kaskadowe arkusze stylów. Pojęcie to przewijało się w poprzednim rozdziale prawie na każdej stronie, ale nie było dokładnie omawiane. Od wersji HTML 3.2 wprowadzono pewne innowacje w strukturze języka i zaczęto zastępować część znaczników innymi. Nowe znaczniki nazwano kaskadowymi arkuszami stylów i sukcesywnie je rozbudowywano. Oficjalna specyfikacja CSS ma numer 2.1. Prowadzone są również prace nad trzecią odsłoną specyfikacji i na stronach konsorcjum W3C dostępna jest jej wstępna wersja. Dzięki stylom możemy mieć pełną kontrolę nad formatowaniem dokumentu. Żadne z poleceń języka HTML nie pozwalało na regulowanie odstępów pomiędzy blokami oraz nakładanie bloków na siebie. Warto wspomnieć o tym, że style umożliwiają kontrolę tła poszczególnych części dokumentu, właściwości czcionek zastosowanych na stronie, tabel, formularzy i wielu innych elementów. Kaskadowe arkusze stylów, w skrócie CSS, możemy określić jako narzędzie do formatowania wyglądu dokumentów. Natomiast za pomocą samych stylów nie możemy stworzyć strony. Podobnie jak języki HTML kaskadowe arkusze stylów są standaryzowane przez W3C i tam należy szukać odpowiedniej specyfikacji.
126
HTML5 • Ćwiczenia praktyczne Pisząc niniejszą książkę, musiałem skupić się tylko na wybranych właściwościach kaskadowych arkuszy stylów. Opis wszystkich możliwości po prostu nie zmieściłby się w tej publikacji. Mam jednak nadzieję, że na podstawie tego, co przedstawiłem na kolejnych kartach książki, dasz radę zbudować własną stronę WWW oraz bez problemu będziesz mógł sięgnąć po pełną specyfikację CSS.
Wprowadzenie Aby świadomie i sprawnie korzystać z ogromnych możliwości, jakie oferują kaskadowe arkusze stylów, konieczne jest krótkie wprowadzenie. Zanim jednak zaczniesz czytać niniejszy podrozdział, chciałbym, abyś zapamiętał, że to, co dalej opisałem, to jedynie wybrana przeze mnie część zagadnień. Niestety ograniczone łamy niniejszej książki zmusiły mnie do ostrej selekcji. Niniejszy podrozdział, ze względu na to, jakie informacje przekazuje, jest niemal całkowicie pozbawiony ćwiczeń. Nie zmienia to faktu, że jego zawartość jest kluczowa dla poznania działania CSS. Wszystkie informacje zawarte poniżej będę wykorzystywać w kolejnych podrozdziałach. Dlatego musisz być przygotowany do dalszej pracy.
Budowa stylu Konstrukcja stylu nie należy do zbyt skomplikowanych, co widać w poniższym przykładzie. selektor {cecha:wartość; cecha:wartość; etc.;}
Selektor jest odpowiednikiem znacznika występującego w języku HTML, może to być np.
lub . Drugi człon stylu jest ujęty w nawias klamrowy { } i zawiera polecenia formatujące. Polecenie formatujące — cecha — jest określane przez specyfikację, natomiast wartość jest zmienną definiowaną przez nas w zależności od aktualnych
potrzeb. Przykładowy prosty styl definiujący kolor bloku tekstu jako czerwony, o wysokości czcionki równej 14 punktów, wygląda tak: p { color:red;
Rozdział 4. • Kaskadowe arkusze stylów
127
font-size:14pt; }
Należy zwrócić uwagę na to, że cecha jest oddzielona od wartości za pomocą dwukropka, a po wartości zawsze występuje średnik. Stosowanie średnika po ostatniej parze cechy i wartości nie jest wymagane, ale oszczędzi wielu niespodzianek. Zapis stylu może przybrać inną postać, jednak jego działanie pozostaje niezmienne. p {color:red; font-size:14pt;}
Jeżeli zapomnimy rozdzielić poszczególnych par cech i wartości za pomocą średników, to styl nie będzie działał poprawnie. body { background-color:white; color:green font-size:20pt; }
Zwróć uwagę na powyższy przykład, w którym chcemy określić biały kolor tła dokumentu oraz kolor czcionki jako zielony. Dodatkowo tekst powinien zostać wyświetlony za pomocą czcionki o wielkości 20pt. Niestety „zapomniałem” wstawić średnik przy definicji koloru tekstu na końcu linii. W większym arkuszu błąd jest praktycznie niemożliwy do wychwycenia, jednak strona zostanie błędnie wyświetlona. Z trzech definicji stylów zadziała tylko pierwsza linijka odpowiedzialna za przypisanie białego koloru tła. Pozostałe dwa elementy zostaną błędnie rozpoznane przez przeglądarkę i nie zadziałają.
Metody osadzania stylów na stronie Kaskadowe arkusze stylów mogą być osadzone w dokumencie HTML na kilka sposobów. Specyfikacja przewiduje następujące rozwiązania: T Style wewnętrzne: T lokalne, T zagnieżdżone. T Style zewnętrzne: T dołączone, T importowane.
128
HTML5 • Ćwiczenia praktyczne
Pierwszym rozwiązaniem jest umieszczenie deklaracji stylu bezpośrednio w formatowanym znaczniku. Rozwiązanie takie nosi nazwę stylu lokalnego, gdyż wpływa wyłącznie na zawartość znacznika, w którym się znajduje.
Treść dokumentu
Treść dokumentu
Wadą powyższego rozwiązania jest spore utrudnienie w przypadku zmiany sposobu formatowania jakiegoś elementu oraz niepotrzebne powiększanie objętości kodu. Weźmy na przykład dokument, w którym umieszczono czterdzieści bloków tekstu i każdy z nich ma wyglądać identycznie. Aby to osiągnąć, do każdego z nich należy wpisać odpowiednie style. Wiąże się to z wykonaniem dodatkowej pracy, stratą czasu oraz zwiększeniem objętości kodu. Sytuację taką przewidzieli twórcy kaskadowych arkuszy stylów, dzięki czemu mamy inne możliwości umieszczania CSS bezpośrednio w nagłówku strony. Rozwiązanie to nazywane jest stylem zagnieżdżonym.
Tytuł przykładowej strony
Przykładowy blok tekstu.
Style wewnętrzne — zarówno lokalne, jak i zagnieżdżone — poza zaletami mają również dość poważne wady. Weźmy jako przykład rozbudowany serwis, np. portal Onet.pl, na który składają się setki lub tysiące podstron. Każda z podstron jest formatowana w podobny
Rozdział 4. • Kaskadowe arkusze stylów
129
sposób i wykorzystuje ten sam zestaw stylów. W takim przypadku style lokalne odpadają, a zagnieżdżanie definicji w nagłówkach również nie jest najlepszym pomysłem. Na szczęście istnieje jeszcze trzecia możliwość, styl zewnętrzny, która opiera się na znaczniku umieszczanym bezpośrednio w nagłówku strony, dzięki czemu taki arkusz również działa w całym dokumencie. Znacznik ten pozwala na podłączenie zewnętrznego arkusza stylów. Odpowiedni wpis ma następującą postać:
Tytuł przykładowej strony
Przykładowy blok tekstu
Atrybut href="" odpowiada za określenie nazwy oraz lokalizacji wybranego arkusza. Następny element, rel="", definiuje relacje, które w przypadku CSS zawsze mają wartość stylesheet. Ostatni element, type="", zawsze ma wartość text/css. Dzięki temu przeglądarka „wie”, z jakim arkuszem ma do czynienia. Działanie tego elementu docenimy w przyszłości, gdy powstaną inne arkusze i będzie trzeba z nich skorzystać. Zewnętrzny arkusz jest zwyczajnym plikiem tekstowym, a jego zawartość może wyglądać tak jak w poniższym przykładzie. /* To jest przykład zewnętrznego arkusza stylów*/ p { color:green; font-family:Arial; }
Zewnętrzny arkusz powinien być zapisany w pliku o dowolnej nazwie, która nie zawiera polskich znaków. Bezwzględnie taki dokument musi mieć rozszerzenie zgodne ze wzorem nazwa-pliku.css.
130
HTML5 • Ćwiczenia praktyczne Specyfikacja CSS daje nam jeszcze możliwość zaimportowania arkusza z innej strony oraz zdefiniowania kilku zewnętrznych arkuszy dla tej samej strony. Jednak na tym etapie te rozwiązania nie są Ci potrzebne. Dlatego zdecydowałem się o nich wspomnieć jedynie w formie uwagi.
Ć W I C Z E N I E
4.1
Osadzanie stylów na stronie
Stwórz prostą stronę i umieść na niej dwa bloki tekstu, a następnie podłącz zewnętrzny arkusz stylów. Korzystając z CSS, przypisz czerwony kolor dla dodanego tekstu. Aby wykonać to ćwiczenie, postępuj zgodnie z instrukcjami zamieszczonymi w kolejnych podpunktach. 1. Otwórz plik przygotowany w ćwiczeniu 2.6. 2. Pomiędzy znacznikami dodaj dwa bloki tekstu. W tym celu skorzystaj ze znacznika . 3. Sprawdź, czy w nagłówku strony znajduje się deklaracja odpowiedzialna za podłączenie zewnętrznego arkusza stylów. Przypomnę, że odpowiedni zapis powinien mieć postać:
4. Zapisz dokument HTML. Nadaj mu nazwę szablon.html. 5. Za pomocą edytora tekstowego utwórz plik o nazwie style.css.
W związku z tym, że jeszcze nie znasz CSS, spróbuj przepisać poniższą deklarację. p { color:red; }
6. Otwórz dokument HTML i sprawdź, czy tekst ma kolor czerwony. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
Najważniejsze jednostki miar i definicje kolorów Kaskadowe arkusze stylów pozwalają nam na określenie wielkości wielu elementów, dopuszczając przy tym różne jednostki miar względnych i bezwzględnych. Dodatkowo w drugiej specyfikacji możemy się spotkać z jednostkami czasu, częstotliwości oraz jednostkami kątowymi.
Rozdział 4. • Kaskadowe arkusze stylów
131
Na początek kilka najważniejszych i najczęściej używanych jednostek względnych. T px — piksele p {margin-left:20px;}
Jednostka ta opiera się na pojedynczych punktach widocznych na ekranie monitora — pikselach. Jeżeli dokładniej przyjrzymy się ekranowi monitora, zdołamy dostrzec drobne punkty. W zależności od ustawionej rozdzielczości liczba tych punktów może być różna, np. 800×600. Pierwsza wartość oznacza liczbę punktów w poziomie, natomiast druga określa, ile pikseli mieści się w pionie. Oczywiście rozdzielczości mogą być bardzo różne, np. 1024×768 czy 1600×1200, a do tego mogą się różnić w zależności od systemu operacyjnego czy typu monitora. Dlatego też stosowanie takiej jednostki nie zawsze daje dobre rezultaty w innych warunkach niż te wykorzystane podczas tworzenia witryny. T em — proporcje wysokości do czcionki danego elementu p {margin-left:2em;}
Zasada działania tej jednostki jest stosunkowo prosta i polega na określaniu zależności pomiędzy poszczególnymi wielkościami. Jeżeli zdefiniujemy domyślną czcionkę o wielkości 12 pt, to będzie ona równa 1em. Przyjrzyjmy się poniższemu przykładowi: p { font-size:12pt; margin-left:2em; }
Powyżej zdefiniowałem wielkość czcionki 12pt dla bloku tekstu. Następnie za pomocą kolejnego polecenia ustawiłem lewy margines jako 2em. W tym przypadku lewy margines będzie się równał 24pt. T % — procenty p {font-size:10%;}
Procenty służą do określania wielkości względem wartości domyślnej. Przykładowa definicja spowoduje ustawienie wielkości czcionki na poziomie 1/10 domyślnego rozmiaru, jaki został ustalony w przeglądarce. Teraz kolej na najpopularniejsze jednostki bezwzględne.
132
HTML5 • Ćwiczenia praktyczne
T pt — punkty p {font-size:12pt;}
Punkty wywodzą się z typografii, gdzie są standardową jednostką miary. W praktyce 72 punkty odpowiadają jednemu calowi, a ten równa się 2,54 cm. T cm — centymetry p {font-size:1cm;}
Centymetr jest miarą stosowaną w większości krajów na świecie. Jeden centymetr odpowiada 0,39 cala. T mm — milimetry p {font-size:12mm;}
Milimetry są jednostką mniejszą niż centymetr. Występują w systemie metrycznym, więc na jeden centymetr składa się 10 mm. Inną ważną cechą kaskadowych arkuszy stylów jest możliwość określania kolorów. Do określania kolorów podobnie jak w języku HTML możemy użyć nazw kolorów, np. red, green czy blue. div {color:red;}
Niestety nazwy zostały przypisane jedynie kilkunastu podstawowym kolorom (patrz tabela 4.1) i jeżeli chcesz użyć innego koloru, musisz skorzystać z innej formy jego identyfikacji. Zapis w postaci RGB może wyglądać następująco: div {color:rgb(255,0,0);}
W zapisie kolorów opartym na modelu RGB liczby całkowite z przedziału od 0 do 255 zostają przypisane dla każdej z wartości składowych palety RGB (red, green, blue), stąd liczb może być aż dziewięć. Oczywiście możemy jeszcze zapisać kolor w postaci RGB, określając procent nasycenia danej barwy. div {color:rgb(100%,0%,0%);}
Kolejnym sposobem zapisu kolorów jest metoda szesnastkowa będąca tym samym co zapis szesnastkowy, doskonale znany wszystkim, którzy mieli do czynienia z komputerami. div {color:#FF0000;}
We wszystkich podanych przeze mnie przykładach określany był kolor czerwony.
Rozdział 4. • Kaskadowe arkusze stylów
133
Tabela 4.1. Wybrane kolory z przypisanymi nazwami wchodzące w skład bezpiecznej palety 216 kolorów Nazwa koloru
Zapis szesnastkowy
Black
#000000
Silver
#C0C0C0
Gray
#808080
White
#FFFFFF
Maroon
#800000
Red
#FF0000
Purple
#800080
Fuchsia
#FF00FF
Green
#008000
Lime
#00FF00
Olive
#808000
Yellow
#FFFF00
Navy
#000080
Blue
#0000FF
Teal
#008080
Aqua
#00FFFF
Selektory Selektor jest kluczem do pracy ze stylami. Bez tego elementu nie moglibyśmy przypisać stylów do wybranych znaczników strony oraz kontrolować jej wyglądu. Selektory wykorzystywane podczas tworzenia własnych arkuszy stylów mogą przybierać różne formy. Specyfikacja przewiduje stosowanie następujących rodzajów selektorów: prostych, uniwersalnych, potomka, dziecka, rodzeństwa, identyfikatorów, klas, pseudoklas oraz pseudoelementów. Oczywiście nie wszystkie rodzaje selektorów są używane w każdym projekcie, dlatego poniżej w skrócie omówiłem tylko te najważniejsze.
134
HTML5 • Ćwiczenia praktyczne
Konstrukcja stylu wykorzystującego selektor prosty nie należy do zbyt skomplikowanych i wygląda tak jak w poniższym przykładzie. p { color:red; font-size:14pt; }
Jak widzisz, selektorem jest znacznik języka XHTML lub HTML przypisany do elementu, który chcesz w danym momencie formatować. Styl zdefiniowany dla przykładowego selektora P będzie odnosił się wyłącznie do akapitów zamkniętych w znaczniku i nie będzie wpływał na pozostałe elementy strony WWW. Styl zaprezentowany poniżej jest przykładem selektora prostego i odnosi się tylko do elementów zamkniętych pomiędzy znacznikami . W związku z tym wszystkie inne elementy, np. nagłówki czy tabele, nadal będą formatowane w sposób domyślny. Oczywiście sytuacja taka jest zupełnie poprawna i dzięki temu praca z CSS jest bardzo łatwa i przyjemna. Jeden wpis i mamy załatwione wszystkie akapity — to jest to! Zdarza się, że zachodzi potrzeba zdefiniowania jakiegoś typu formatowania w ten sposób, aby zadziałał na cały dokument. Bardzo dobrym przykładem takiej sytuacji może być tło, które zazwyczaj powinno być identyczne dla całego dokumentu. Odpowiedni styl może przyjąć następującą postać: * { background-color:white; }
Gwiazdka w miejscu selektora wymusza na przeglądarce zastosowanie stylów do wszystkich elementów strony. Innym selektorem uniwersalnym jest body. body { color:red; }
Uniwersalność selektora body wynika z jego roli w hierarchii dokumentu. Dokładniej, chodzi o funkcję dziedziczenia pewnych wartości po znacznikach stojących wyżej w hierarchii.
Rozdział 4. • Kaskadowe arkusze stylów
135
Dotychczas opisane selektory pozwalały na przypisanie danego formatowania wszystkim elementom odpowiadającym użytemu selektorowi. Twórcy kaskadowych arkuszy stylów od samego początku dostrzegali konieczność zróżnicowania podobnych elementów, więc wprowadzili identyfikator — id. Zasada działania identyfikatora, co widać na poniższym przykładzie, jest stosunkowo prosta. p { color:green; font-size:14pt; } p#pochyly { font-style:italic; font-size:20pt; }
Odpowiedni wpis składa się z selektora, do którego planujemy przypisać identyfikator, oraz nazwy poprzedzonej znakiem #. Wywołanie tak przygotowanego identyfikatora ma następującą postać:
Blok tekstu o kolorze zielonym i czcionce 14pt
Blok tekstu o kolorze zielonym i czcionce 20pt
Oczywiście w razie potrzeby raz zdefiniowany identyfikator możemy bez problemu wykorzystać w innych akapitach. Jeżeli chcemy przygotować identyfikator uniwersalny, którego użycie będzie możliwe w dowolnym elemencie strony, to powinien on przybrać następującą postać: #czerwony { color:red; }
Wywołanie takiego identyfikatora wygląda dokładnie tak samo jak poprzednio, z tą drobną różnicą, że może nastąpić w dowolnym znaczniku.
Treść akapitu
Treść nagłówka stopnia pierwszego
Tekst wewnątrz komórki
Klasy są kolejnym podstawowym pojęciem w kaskadowych arkuszach stylów. Budowa klasy jest następująca:
Zwróć uwagę na kropkę po selektorze lub przed nazwą klasy. Jest to element obowiązkowy i bez tego dalsza praca nie miałaby większego sensu. Podobnie jak w przypadku identyfikatora tak zdefiniowana klasa może zostać użyta tylko w tym selektorze, do którego została przypisana, np.: p.moja { color:green; font-size:14pt; }
Klasa ta powinna zostać wywołana w znaczniku w następujący sposób:
Treść akapitu
Jak widać na powyższym przykładzie, klasa jest wywoływana w dokumencie za pomocą atrybutu class, który może zostać umieszczony niemal w dowolnym znaczniku. Specyfikacja CSS przewiduje możliwość zdefiniowana takiej klasy, której użycie będzie możliwe w różnych znacznikach. Odpowiednia konstrukcja może mieć następującą postać: .moja { color:red; font-size:12pt; font-style:italic; }
Tak określona klasa również jest wywoływana za pomocą atrybutu class.
Przykład akapitu z określoną klasą
Przykład nagłówka z określoną klasą
Specyfikacja CSS przewiduje kilka ściśle określonych klas pozwalających na formatowanie niektórych elementów dokumentu. Do najpopularniejszych z całą pewnością zaliczają się pseudoklasy odsyłaczy.
Szalenie istotnym elementem w tej konstrukcji jest dwukropek pomiędzy selektorem a nazwą klasy. Pierwsza z prezentowanych pseudoklas, a:link, odpowiada za wygląd hiperłącza, jeżeli nie zostało jeszcze odwiedzone. Przykładowa definicja sformatuje odnośnik za pomocą koloru czerwonego. Element a:visited odpowiada za formatowanie już odwiedzonego hiperłącza i w naszym przypadku taki odnośnik będzie miał kolor zielony. Oczywiście zdefiniowane pseudoklasy nie kończą się na tych dwóch zaprezentowanych powyżej i specyfikacja przewiduje jeszcze kilka dodatkowych pseudoklas. Dzięki pseudoklasie a:hover możliwe jest takie ustawienie pewnych elementów, aby zmieniały się po najechaniu na nie kursorem urządzenia wskazującego (np. myszy). Na pewno każdy widział strony WWW, na których odnośniki tekstowe zmieniały kolor po najechaniu na nie kursorem myszy — to właśnie dzięki tej pseudoklasie.
Style w praktyce Niestety ze względu na ograniczenia narzucone przez serię ćwiczeń musiałem wybrać tylko kilkanaście najważniejszych stylów. Dlatego jeśli chcesz dokładniej poznać możliwości wszystkich stylów, zajrzyj na moją stronę internetową, http://danowski.pl/, na której znajdziesz informacje na temat innych moich książek o tworzeniu stron, kaskadowych arkuszach stylów oraz kursach internetowych.
138
HTML5 • Ćwiczenia praktyczne
Opisywane style są prezentowane w formie zwartej tabeli, w której znajdziesz wszystkie niezbędne informacje. Mam tutaj na myśli nazwę stylu, wszelkie dostępne wartości, domyślną wartość dla danego stylu, konkretny przykład zastosowania oraz informacje na temat dziedziczenia i obsługi stylów w wiodących przeglądarkach. Dodatkowo opis każdego stylu uzupełnia kilka słów objaśniających przeznaczenie danego elementu oraz ćwiczenie, dzięki któremu zastosujesz dany styl w praktyce. Niemal we wszystkich stylach wśród wartości pojawia się tajemnicza opcja inherit. Ustawienie to odpowiada za przejęcie wartości z elementu stojącego wyżej w hierarchii znaczników. Przyjrzyjmy się konkretnemu przykładowi:
Pierwszy blok tekstu
Drugi blok tekstu
Jeżeli w arkuszu stylów ustawisz czerwony kolor tekstu dla sektora div, a dla sektora p niebieski, to w przykładowym listingu pierwszy blok tekstu będzie czerwony, a drugi niebieski.
Wybrane właściwości tekstu Tekst (a dokładniej blok tekstu) na naszej stronie może być formatowany przez kaskadowe arkusze stylów. Już pierwsza specyfikacja CSS zawierała bogaty zestaw poleceń związanych z wyglądem bloków tekstu na stronie. Między innymi mamy możliwość określenia: T wyrównania tekstu, T odstępów pomiędzy wyrazami i literami, T wcięcia tekstu, T dekoracji tekstu, T odstępu pomiędzy wierszami.
Poziome wyrównanie tekstu Styl ten pozwala na wyrównanie tekstu do lewej i prawej strony oraz jego wyśrodkowanie lub rozciągnięcie do obu marginesów. Dokładne właściwości stylu znajdują się w tabeli 4.2.
Rozdział 4. • Kaskadowe arkusze stylów
139
Tabela 4.2. Właściwości stylu text-align text-align Dostępne wartości:
left | right | center | justify | inherit
Wartość domyślna:
left
Przykład:
p {text-align:left;}
Dziedziczenie:
tak
Obsługa:
Opera, Mozilla Firefox, Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.2
Wyrównanie tekstu w poziomie
Zastosuj styl odpowiedzialny za wyrównanie tekstu w poziomie. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz plik przygotowany w ćwiczeniu 4.1 i dodaj w nim cztery bloki tekstu — każdy powinien zajmować dwa lub trzy wiersze. Każdy akapit powinien zawierać odwołania do identyfikatorów, np. pierwszy, drugi, trzeci i czwarty.
Pierwszy blok tekstu...
2. Następnie otwórz wcześniej utworzony plik style.css i korzystając
z identyfikatorów użytych w poprzednim podpunkcie, dodaj definicje stylu wyrównującego tekst. Użyj wszystkich wartości i zapisz plik na dysku. p#pierwszy {text-align:left;}
3. Otwórz dokument HTML i sprawdź, czy nowe style działają
poprawnie. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
Pionowe wyrównanie tekstu Prezentowany styl pozwala na wyrównanie tekstu w pionie wewnątrz tabeli lub znacznika o określonym rozmiarze. Dokładne właściwości stylu znajdują się w tabeli 4.3.
140
HTML5 • Ćwiczenia praktyczne
Tabela 4.3. Właściwości stylu vertical-align vertical-align
Dostępne wartości:
baseline | sub | super | bottom | text-bottom | middle | top | text-top | wartość liczbowa | wartość procentowa | inherit
Wartość domyślna:
baseline
Przykład:
p {vertical-align:super;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.3
Wyrównanie tekstu w pionie
Zastosuj styl odpowiedzialny za wyrównanie tekstu w pionie. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz plik będący wynikiem ćwiczenia 4.1 i dodaj w nim tabelę składającą się z jednego wiersza i dwóch komórek. Do każdej z komórek wpisz krótki tekst.
helion.pl
danowski.pl
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za wyrównanie tekstu w pionie. Dodatkowo uzupełnij swój arkusz o wpisy widoczne w poniższym przykładzie (bez nich nie zobaczysz efektu działania wyrównania tekstu). Zapisz zmodyfikowany plik na dysku. td { vertical-align:top; width:150pt; height:150pt; border:1px solid black; }
Rozdział 4. • Kaskadowe arkusze stylów
141
3. Uruchom przeglądarkę i otwórz swój plik, by sprawdzić efekt
działania wyrównania. 4. Wróć do pliku style.css i zmień wartość stylu vertical-align na inną. Użyj wartości wymienionych w powyższej tabeli w sekcji Dostępne wartości. Zapisz zmiany i ponownie sprawdź efekt działania. W ten sposób przetestuj wszystkie dostępne wartości dla omawianego stylu. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
Wcięcie tekstu Pozwala na ustawienie wielkości wcięcia pierwszej linii bloku tekstu. Dokładne właściwości stylu znajdują się w tabeli 4.4. Tabela 4.4. Właściwości stylu text-indent text-indent
Dostępne wartości:
wartość liczbowa | wartość procentowa | inherit
Wartość domyślna:
0
Przykład:
p {text-indent:3pt;}
Dziedziczenie:
tak
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.4
Wcięcie pierwszej linii bloku tekstu
Zastosuj styl odpowiedzialny za wcięcie pierwszej linii bloku tekstu. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz plik będący wynikiem ćwiczenia 4.1 i dodaj w nim dwa bloki tekstu. Postaraj się, aby każdy akapit zajmował przynajmniej dwie lub trzy linie.
Przykładowy blok tekstu, który zajmuje przynajmniej dwie lub ´trzy linie...
142
HTML5 • Ćwiczenia praktyczne
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za wcięcie pierwszego wiersza. Nie zapomnij określić rozmiaru wcięcia. Możesz do tego użyć wartości względnych lub bezwzględnych, które opisałem na początku niniejszego rozdziału. Zapisz zmodyfikowany plik na dysku. p { text-indent:1cm; }
3. Uruchom swoją przeglądarkę i otwórz plik, by sprawdzić efekt
działania prezentowanego stylu. Jeżeli z jakichś powodów miałeś problemy z wykonaniem niniejszego ćwiczenia, gotowy plik możesz pobrać ze strony http://danowski.pl/html5.
Dekoracja tekstu Dekoracja tekstu to jego podkreślanie, przekreślanie czy nadkreślanie. Dokładne właściwości stylu znajdują się w tabeli 4.5. Tabela 4.5. Właściwości stylu text-decoration text-decoration
Pełna obsługa: Opera, Mozilla Firefox Częściowa obsługa: Internet Explorer, Chrome i Safari (nie działa blink)
Ć W I C Z E N I E
4.5
Dekoracja tekstu
Zastosuj styl odpowiedzialny za dekorację tekstu. Postępuj zgodnie z poniższymi poleceniami.
Rozdział 4. • Kaskadowe arkusze stylów
143
1. Otwórz uprzednio przygotowany plik szablon.html i dodaj w nim
prosty i niezbyt rozbudowany blok tekstu.
Przykładowy blok tekstu
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za dekorację tekstu. Zapisz zmodyfikowany plik na dysku. p { text-decoration:underline; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu. 4. Sprawdź kolejne wartości przewidziane dla opisywanego stylu.
Wybrane właściwości czcionki Jedną z najważniejszych funkcji oferowanych przez kaskadowe arkusze stylów jest możliwość formatowania wyglądu czcionki użytej do skomponowania strony. Za pomocą CSS możemy między innymi określić: T rodzaj czcionki, T wielkość czcionki, T styl czcionki, T wagę czcionki.
Rodzaj czcionki Prezentowany styl pozwala na określenie rodzaju czcionki. Możesz skorzystać z nazwy własnej czcionki lub nazw rodzajowych widocznych w tabeli 4.6. Ć W I C Z E N I E
4.6
Rodzaj czcionki
Zastosuj styl odpowiedzialny za określenie rodzaju użytej czcionki. Postępuj zgodnie z poniższymi poleceniami.
144
HTML5 • Ćwiczenia praktyczne
Tabela 4.6. Właściwości stylu font-family font-family
Dostępne wartości:
nazwa czcionki | serif | sans-serif | monospace | fantasy | cursive | inherit
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
1. Otwórz uprzednio przygotowany plik szablon.html i dodaj w nim
dwa proste i niezbyt rozbudowane bloki tekstu. Do każdego bloku przypisz oddzielne identyfikatory. Zapisz plik na dysku.
Przykładowy blok tekstu
Przykładowy blok tekstu
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za określenie rodzaju czcionki. Utwórz dwa wpisy wykorzystujące uprzednio zdefiniowane identyfikatory. Zadbaj o to, aby każdy styl używał innej czcionki. Zapisz plik na dysku. p#pierwszy { font-family:Verdana; } p#drugi { font-family:monospace; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu.
Rozmiar czcionki To jeden z najczęściej używanych stylów. Pozwala na określenie rozmiaru użytej czcionki. Możesz skorzystać z rozmiaru określonego za pomocą jednostek względnych i bezwzględnych oraz specjalnych wartości określonych przez specyfikację, widocznych w tabeli 4.7.
Rozdział 4. • Kaskadowe arkusze stylów
145
Tabela 4.7. Właściwości stylu font-size font-size
Dostępne wartości:
rozmiar absolutny | rozmiar względny | xx-small | x-small | small | medium | large | x-large | xx-large | smaller | larger | inherit
Wartość domyślna:
medium
Przykład:
p{font-size:20pt;}
Dziedziczenie:
tak
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.7
Rozmiar czcionki
Zastosuj styl odpowiedzialny za określenie rozmiaru użytej czcionki. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i dodaj w nim trzy bloki tekstu. Dla każdego bloku określ unikalny identyfikator. Zapisz plik na dysku.
Prosty blok tekstu
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za określenie rozmiaru czcionki użytej w blokach. Utwórz oddzielne wpisy dla każdego identyfikatora. Zadbaj o to, aby każdy z nagłówków używał innego rozmiaru czcionki. Zapisz plik na dysku. p#pierwszy { font-size:10pt; } p#drugi { font-size:xx-large; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu.
146
HTML5 • Ćwiczenia praktyczne
Waga czcionki Prezentowany styl pozwala na określenie pogrubienia czcionki użytej w tekście. Dokładne właściwości stylu znajdują się w tabeli 4.8. Tabela 4.8. Właściwości stylu font-weight font-weight
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.8
Pogrubienie
Zastosuj styl odpowiedzialny za pogrubienie użytej czcionki. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i dodaj w nim blok tekstu. Zapisz plik na dysku.
Prosty blok tekstu
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za pogrubienie tekstu w blokach. Skorzystaj z wartości przedstawionych w tabeli powyżej. Zapisz plik na dysku. p { font-weight:bold; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu.
Rozdział 4. • Kaskadowe arkusze stylów
147
Styl czcionki Styl czcionki pozwala m.in. na uzyskanie czcionki pochyłej — kursywy. Dokładne właściwości stylu znajdują się w tabeli 4.9. Tabela 4.9. Właściwości stylu font-style font-style
Dostępne wartości:
normal | italic | oblique | inherit
Wartość domyślna:
normal
Przykład:
p{font-style:italic;}
Dziedziczenie:
tak
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.9
Kursywa
Zastosuj styl odpowiedzialny za wyróżnienie tekstu za pomocą czcionki pochyłej — kursywy. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i dodaj w nim blok tekstu. Zapisz plik na dysku.
Prosty blok tekstu
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za wyróżnienie zawartości za pomocą kursywy. Zapisz plik na dysku. p { font-style:italic; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu.
Wybrane właściwości list Za pomocą kaskadowych arkuszy stylów można kontrolować następujące właściwości list:
148
HTML5 • Ćwiczenia praktyczne
T typ listy, T sposób wypunktowania, T pozycję listy względem wypunktowania.
Typ listy Typ listy to sposób, w jaki lista jest wypunktowana. Po lekturze poprzedniego rozdziału wiesz, że mamy do czynienia z kilkoma rodzajami list, m.in. z listami wypunktowanymi i numerowanymi. Dzięki prezentowanemu stylowi możesz określić, w jaki sposób lista będzie numerowana lub jaki znaczek pojawi się w liście wypunktowanej. Dokładne właściwości stylu znajdują się w tabeli 4.10. Tabela 4.10. Właściwości stylu list-style-type list-style-type
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.10
Kontrola właściwości list
Zastosuj styl odpowiedzialny za kontrolę wyglądu listy. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i w sekcji dodaj dwie listy: wypunktowaną i numerowaną. Każda lista powinna zawierać min. trzy pozycje. Zapisz plik na dysku.
Pierwsza pozycja listy wypunktowanej
Druga pozycja listy wypunktowanej
Rozdział 4. • Kaskadowe arkusze stylów
149
Trzecia pozycja listy wypunktowanej
Pierwsza pozycja listy numerowanej
Druga pozycja listy numerowanej
Trzecia pozycja listy numerowanej
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za określenie sposobu wypunktowania lub numerowania listy. Skorzystaj z wartości wymienionych w tabeli powyżej. Zapamiętaj, że wartości disc, circle oraz square są przeznaczone do wykorzystania w listach wypunktowanych. Zapisz plik na dysku. ol
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu. 4. W ramach testu sprawdź wszystkie dostępne wartości dla stylu list-style-type. Zwróć również uwagę na wartość none, która pozwala na zachowanie wartości listy, ale wyłącza numerację lub wypunktowanie.
Wybrane właściwości koloru i tła Za pomocą CSS możemy określić wygląd tła i kolor dla wybranych elementów. W zależności od potrzeb możemy zdefiniować tło będące wartością koloru lub obrazkiem.
Kolor elementu Za pomocą tego stylu możesz określić kolor elementów tekstowych — bloki tekstu, listy, odsyłacze czy nagłówki. Dokładne właściwości stylu znajdują się w tabeli 4.11.
150
HTML5 • Ćwiczenia praktyczne
Tabela 4.11. Właściwości stylu color color
Dostępne wartości:
nazwa lub wartość koloru | inherit
Wartość domyślna:
Zależy od domyślnych ustawień przeglądarki
Przykład:
p {color:#FF0000;}
Dziedziczenie:
tak
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.11
Ustalanie koloru elementów
Zastosuj styl odpowiedzialny za kontrolę koloru elementów tekstowych. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i w sekcji dodaj blok tekstu, nagłówek, hiperłącze oraz listę. Zapisz plik na dysku.
Przykładowy blok tekstu
Nagłówek stopnia drugiego Bartosz Danowski
Pierwsza pozycja listy wypunktowanej
Druga pozycja listy wypunktowanej
Trzecia pozycja listy wypunktowanej
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za określenie koloru elementów tekstowych. Postaraj się nadać różne kolory elementom, które znajdują się w pliku szablon.html. Zapisz plik na dysku. p { color:green; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu.
Rozdział 4. • Kaskadowe arkusze stylów
151
Kolor tła Korzystając z omawianego stylu, możesz ustawić kolor tła dla elementów widocznych na stronie. Własne tło mogą mieć m.in. bloki tekstu, nagłówki, listy czy tabele. Dokładne właściwości stylu znajdują się w tabeli 4.12. Tabela 4.12. Właściwości stylu background-color background-color
Dostępne wartości:
nazwa lub wartość koloru | transparent | inherit
Wartość domyślna:
transparent
Przykład:
p {background-color:#FF0000;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.12
Ustalanie koloru tła
Zastosuj styl odpowiedzialny za kontrolę koloru tła elementów widocznych na stronie. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i w sekcji dodaj blok tekstu, nagłówek, hiperłącze oraz listę. Zapisz plik na dysku.
Przykładowy blok tekstu
Nagłówek stopnia drugiego Bartosz Danowski
Pierwsza pozycja listy wypunktowanej
Druga pozycja listy wypunktowanej
Trzecia pozycja listy wypunktowanej
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za określenie koloru tła poszczególnych elementów. Postaraj się nadać różne kolory elementom, które znajdują się w pliku szablon.html. Zapisz plik na dysku.
152
HTML5 • Ćwiczenia praktyczne p { background-color:silver; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu.
Element graficzny jako tło Kaskadowe arkusze stylów umożliwiają ustawienie dowolnego obrazka jako tła dla elementów widocznych na stronie. Dokładne właściwości stylu znajdują się w tabeli 4.13. Tabela 4.13. Właściwości stylu background-image background-image
Dostępne wartości:
url | none | inherit
Wartość domyślna:
none
Przykład:
body {background-image:url(tlo.jpg);}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.13
Ustalanie obrazka w tle
Zastosuj styl odpowiedzialny za kontrolę obrazka w tle elementów widocznych na stronie. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i w sekcji dodaj blok tekstu. Zapisz plik na dysku.
Przykładowy blok tekstu
2. W programie graficznym przygotuj obrazek będący tłem.
Proponuję, abyś stworzył nowy obrazek o rozmiarach 50×1200 pikseli. Tworząc swoje tło, postaraj się wzorować na zawartości rysunku 4.1. Gotowy projekt zapisz na dysku pod nazwą tlo.jpg.
Rozdział 4. • Kaskadowe arkusze stylów
153
Rysunek 4.1. Przykładowe tło — obrazek ten zostanie wykorzystany również w następnych ćwiczeniach 3. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za określenie obrazka będącego tłem całej strony. W sekcji wartość podaj nazwę obrazka przygotowanego w punkcie drugim niniejszego ćwiczenia. Zapisz plik na dysku. body { background-image:url(tlo.jpg); }
4. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu. 5. Zwróć uwagę na to, w jaki sposób tło się powieliło. Właściwość, którą dostrzegłeś na swoim przykładzie, nosi nazwę powielanie tła i może być bardzo przydatna podczas tworzenia różnych projektów.
Wybrane właściwości marginesów i dopełnienia Margines to obszar po zewnętrznej stronie obramowania elementu obecny w każdym elemencie wykorzystanym na stronie WWW. Za pomocą CSS można kontrolować lewy, prawy, górny i dolny margines albo wszystkie naraz. Dokładne właściwości stylu znajdują się w tabeli 4.14. Ć W I C Z E N I E
4.14
Kontrola marginesów
Zastosuj styl odpowiedzialny za kontrolę marginesów. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i w sekcji dodaj dwa bloki tekstu. Dla każdego akapitu ustal unikalny identyfikator. Zapisz plik na dysku.
Przykładowy blok tekstu
154
HTML5 • Ćwiczenia praktyczne
Tabela 4.14. Właściwości stylu margin margin margin-left margin-right margin-top margin-bottom
Dostępne wartości:
wartość liczbowa | wartość procentowa | auto | inherit
Wartość domyślna:
0
Przykład:
p {margin-left:1cm;} h1 {margin-right:1cm;} table {margin-top:1cm;} div {margin-bottom:1cm;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za określenie marginesów. Pierwszy blok tekstu powinien mieć ustawiony wyłącznie lewy margines. Natomiast dla drugiego ustaw górny margines. Zapisz plik na dysku. p#pierwszy { margin-left:2cm; } p#drugi { margin-top:10%; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu. 4. Zapamiętaj, że w przypadku gdy dla pierwszego bloku ustawisz
dolny, a dla drugiego górny margines, to ich wartość zostanie zsumowana. Możesz to sprawdzić, modyfikując w odpowiedni sposób style dla obu bloków tekstu. Dopełnienie to obszar po wewnętrznej stronie obramowania elementu, obecny w każdym elemencie wykorzystanym na stronie WWW. Za pomocą CSS można kontrolować lewe, prawe, górne i dolne dopełnienie albo wszystkie naraz.
wartość liczbowa | wartość procentowa | auto | inherit
Wartość domyślna:
0
Przykład:
p {padding-left:1cm;} h1 {padding-right:1cm;} table {padding-top:1cm;} div {padding-bottom:1cm;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Jeżeli masz ochotę, możesz spróbować w ćwiczeniu 4.14 zastąpić marginesy dopełnieniami i sprawdzić, jaki to da efekt.
Wybrane właściwości obramowania Typowe obramowanie przybiera formę pojedynczej lub podwójnej linii o ciągłej lub przerywanej strukturze i dowolnym kolorze. Za pomocą kaskadowych arkuszy stylów można kontrolować następujące właściwości obramowania: T styl, T grubość, T kolor. Ze względu na specyfikację nadawania obramowania stosowne ćwiczenie znajdziesz dopiero w opisie ostatniego prezentowanego stylu. Natomiast podrozdziały o stylu, kolorze i grubości wyjątkowo nie zawierają ćwiczenia.
Styl obramowania Pozwala określić rodzaj linii użytej do obramowania formatowanego elementu. Możemy korzystać z linii pojedynczych, podwójnych, przerywanych itp. Zwróć uwagę, że możesz kontrolować obramowanie
156
HTML5 • Ćwiczenia praktyczne
całego elementu lub wybranej strony. Dokładne właściwości stylu znajdują się w tabeli 4.15. Tabela 4.15. Właściwości stylu border-style border-style border-top-style border-right-style border-bottom-style border-left-style
p {border-style:dotted;} p {border-left-style:solid;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Grubość obramowania Pozwala na określenie grubości linii obramowania. Podobnie jak w przypadku stylu możemy określić grubość całego obramowania lub każdej strony z osobna. Dokładne właściwości stylu znajdują się w tabeli 4.16.
Kolor obramowania Dzięki odpowiedniemu stylowi obramowanie może mieć swój kolor. Również tym razem kolor może być przypisany dla całego obramowania lub dla wybranej strony. Dokładne właściwości stylu znajdują się w tabeli 4.17. Ć W I C Z E N I E
4.15
Kontrola obramowania
Zastosuj styl odpowiedzialny za kontrolę obramowania. Postępuj zgodnie z poniższymi poleceniami.
Rozdział 4. • Kaskadowe arkusze stylów
157
Tabela 4.16. Właściwości stylu border-width border-width border-top-width border-right-width border-bottom-width border-left-width
Dostępne wartości:
none | wartości liczbowe | wartości procentowe | thin | medium | thick | inherit
Wartość domyślna:
none
Przykład:
p {border-top-width:5px;} div {border-width:2pt;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Tabela 4.17. Właściwości stylu border-color border-color border-top-color border-right-color border-bottom-color border-left-color
Dostępne wartości:
nazwa lub wartość koloru | transparent | inherit
Wartość domyślna:
wg ustawień domyślnego koloru dla dokumentu
Przykład:
p {border-top-color:red;}
Dziedziczenie:
tak
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
1. Otwórz uprzednio przygotowany plik szablon.html i w sekcji dodaj tabelę z tabliczką mnożenia przygotowaną
w ćwiczeniu 3.19. 2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl odpowiedzialny za określenie obramowania i jego wyglądu. Dla tabeli ustaw podwójne obramowanie w kolorze czarnym. Dla komórek będących nagłówkiem wybierz pojedyncze cienkie
158
HTML5 • Ćwiczenia praktyczne
obramowanie w kolorze zielonym. Natomiast dla pozostałych komórek ustaw pojedyncze cienkie obramowanie w kolorze czerwonym. Zapisz plik na dysku. table { border-color:black; border-style:double; border-width:5pt; } td { border-color:red; border-style:solid; border-width:2pt; text-align:center; } th { border-color:green; border-style:solid; border-width:2px; background:green; color:white; text-align:center; font-weight:bolder; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu. 4. W ramach ćwiczeń indywidualnych sprawdź wszystkie wartości przewidziane dla stylu obramowania. Przy okazji zapamiętaj, że styl obramowania może być odmiennie interpretowany przez różne przeglądarki.
Wymiarowanie elementów Jeżeli korzystasz z języka XHTML, musisz pamiętać o tym, że w wielu przypadkach zaleca on lub wręcz wymusza stosowanie kaskadowych arkuszy stylów do wymiarowania różnych elementów widocznych na stronie, np. tabel. Za pomocą CSS możesz m.in. określić wysokość oraz szerokość elementów.
Rozdział 4. • Kaskadowe arkusze stylów
159
Dla utrwalenia sposobu określania wysokości i szerokości elementów zostało opracowane wspólne ćwiczenie, które znajduje się pod opisem procedury określania wysokości elementów.
Szerokość Prezentowany styl pozwala na określenie szerokości formatowanego elementu. Dokładne właściwości stylu znajdują się w tabeli 4.18. Tabela 4.18. Właściwości stylu width width
Dostępne wartości:
wartość liczbowa | wartość procentowa | auto | inherit
Wartość domyślna:
auto
Przykład:
p {width:30%;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Wysokość Prezentowany styl pozwala na określenie wysokości formatowanego elementu. Dokładne właściwości stylu znajdują się w tabeli 4.19. Tabela 4.19. Właściwości stylu height height
Dostępne wartości:
wartość liczbowa | wartość procentowa | auto | inherit
Wartość domyślna:
auto
Przykład:
p {height:30%;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
160
HTML5 • Ćwiczenia praktyczne
Ć W I C Z E N I E
4.16
Kontrola wysokości i szerokości elementu
Zastosuj style odpowiedzialne za kontrolę wysokości i szerokości. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i w sekcji dodaj tabelę, która będzie miała dwa wiersze po dwie komórki każdy. W każdej komórce wprowadź krótki tekst — najlepiej jedno słowo. Zapisz plik na dysku.
Pierwsza komórka
Druga komórka
Trzecia komórka
Czwarta komórka
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za określenie szerokości i wysokości komórki tabeli. Odpowiednie wymiary dobierz indywidualnie. Koniecznie dodaj styl formatujący obramowanie tabeli. Zapisz plik na dysku. table, td { border:solid 2px black; } td { width:150px; height:150px; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu. 4. W ramach ćwiczeń indywidualnych spróbuj na stronie dodać blok tekstu (powinien zawierać większą ilość tekstu). Następnie określ jego szerokość, np. na 200 – 300 pikseli.
Rozdział 4. • Kaskadowe arkusze stylów
161
Wybrane właściwości pozycjonowania elementów Pozycjonowanie elementów za pomocą CSS to jedno z najważniejszych narzędzi, jakie trafiły w ręce webmastera. Za pomocą odpowiednich stylów możesz stworzyć nowoczesną stronę pozbawioną tabel i wolną od wielu ograniczeń. Niniejszy podrozdział nie zawiera ćwiczeń, ponieważ uznałem, że działanie pozycjonowania elementów na stronie zademonstruję w praktyce w rozdziale 5.
Rodzaj pozycjonowania Za pomocą prezentowanego stylu określamy sposób, w jaki przeglądarka będzie określać położenie danego elementu na stronie. Dokładne właściwości stylu znajdują się w tabeli 4.20. Tabela 4.20. Właściwości stylu position position
Dostępne wartości:
static | relative | absolute | fixed | inherit
Wartość domyślna:
static
Przykład:
p {position:absolute;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer (bez fixed), Chrome, Safari
Specyfikacja CSS rozróżnia następujące metody pozycjonowania: T static (statyczne) — każdy element umieszczony na stronie ma nadane pozycjonowanie statyczne; jest to jego domyślne położenie. T relative (względne) — punktem odniesienia przy określaniu względnego położenia elementu jest jego domyślna lokalizacja na stronie. Pozycjonowanie względne jest powiązane bezpośrednio z konkretnym znacznikiem lub może zostać rozciągnięte za pomocą .
162
HTML5 • Ćwiczenia praktyczne p { position:relative; top:1cm; left:1cm; }
T absolute (bezwzględne) — pozycjonowanie bezwzględne polega
na określeniu dokładnego położenia elementu względem lewego górnego narożnika okna przeglądarki. Punkt ten przyjmuje współrzędne (0;0), a ustawianie elementów polega na wyznaczaniu, w wirtualnym układzie, współrzędnych lewego górnego rogu pozycjonowanego elementu. p { position:absolute; left:80px; top:80px; }
T fixed (ustalone) — pozycjonowanie ustalone jest odmianą
pozycjonowania bezwzględnego, jednak element, którego dotyczy, zawsze pozostaje w widocznej części okna przeglądarki. W praktyce wygląda to tak, jakby na stronie została zastosowana ramka. div.lewa { position:fixed; top:10px; width:180px; }
Określanie pozycji Niezależnie od metody pozycjonowania elementów na stronie, ich pozycja jest określana za pomocą poleceń left, right, top oraz bottom uzupełnionych o wartość liczbową lub procentową. Dokładne właściwości stylu znajdują się w tabeli 4.21.
Kolejność nałożonych elementów Jeżeli przy wykorzystaniu pozycjonowania elementów nałożymy je na siebie, to przeglądarka domyślnie określi ich kolejność. Kolejność jest ustalana na podstawie występowania elementów w kodzie strony.
Rozdział 4. • Kaskadowe arkusze stylów
163
Tabela 4.21. Właściwości stylów odpowiedzialnych za określanie pozycji top right bottom left
Dostępne wartości:
auto | wartość liczbowa | wartość procentowa | inherit
Wartość domyślna:
auto
Przykład:
p {position:absolute; top:10px;} p {position:absolute; right:10px;} p {position:absolute; bottom:10px;} p {position:absolute; left:10px;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Dzięki prezentowanemu stylowi możemy dowolnie sterować kolejnością elementów w stosie. Dokładne właściwości stylu znajdują się w tabeli 4.22. Tabela 4.22. Właściwości stylu z-index z-index
Dostępne wartości:
auto | wartość liczbowa określająca pozycję w stosie | inherit
Wartość domyślna:
auto
Przykład:
p {z-index:2;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Pływanie i tamowanie elementów Zapewne miałeś w ręku gazetę i widziałeś w niej, że zdjęcia oblane są większymi partiami tekstu. Takie rozwiązanie możesz uzyskać również za pomocą CSS i nosi ono nazwę pływania.
164
HTML5 • Ćwiczenia praktyczne
Pływanie elementów Kaskadowe arkusze stylów pozwalają kontrolować oblewanie przez tekst pozostałych elementów. Ciekawostką jest to, że oblewać możemy praktycznie każdy element. Dokładne właściwości stylu znajdują się w tabeli 4.23. Tabela 4.23. Właściwości stylu float float
Dostępne wartości:
left | right | none | inherit
Wartość domyślna:
none
Przykład:
img {float:right;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Ć W I C Z E N I E
4.17
Pływanie elementów
Zastosuj style, za pomocą których uda Ci się obrazek oblać tekstem. Postępuj zgodnie z poniższymi poleceniami. 1. Otwórz uprzednio przygotowany plik szablon.html i w sekcji dodaj obrazek oraz większy blok tekstu. Zapisz plik na dysku.
Lorem ipsum dolor sit amet,
2. Następnie otwórz wcześniej utworzony plik style.css i dodaj styl
odpowiedzialny za określenie sposobu oblania obrazka. Zapisz plik na dysku. img { float:right; }
3. Uruchom swoją przeglądarkę i otwórz plik szablon.html,
by sprawdzić efekt działania prezentowanego stylu. 4. W ramach ćwiczeń indywidualnych spróbuj sprawdzić inne sposoby oblewania obrazka tekstem.
Rozdział 4. • Kaskadowe arkusze stylów
165
Tamowanie elementów Podczas tworzenia stron WWW czasem chcemy, by jakiś element nie był oblany. Stosowne rozwiązanie również dostępne jest w CSS. Dokładne właściwości stylu znajdują się w tabeli 4.24. Tabela 4.24. Właściwości stylu clear clear
Dostępne wartości:
left | right | none | both | inherit
Wartość domyślna:
none
Przykład:
img {clear:right;}
Dziedziczenie:
nie
Obsługa:
Opera, Mozilla Firefox, MS Internet Explorer, Chrome, Safari
Zmiana sposobu wyświetlania elementu Podczas pracy nad stroną zdarza się, że idealnym rozwiązaniem będzie wykorzystanie jednego elementu języka HTML, a następnie przekształcenie go na inny za pomocą CSS. Kaskadowe arkusze stylów są na to przygotowane i do takich zadań specjalnych mają odpowiednie polecenie. Dokładne właściwości stylu znajdują się w tabeli 4.25. Tabela 4.25. Właściwości stylu display display
MS Internet Explorer (częściowo), Mozilla Firefox, Opera
166
HTML5 • Ćwiczenia praktyczne
Poniżej opisałem wybrane ustawienia, które są najczęściej używane podczas pracy nad stroną. Natomiast konkretny przykład wykorzystania tego stylu znajdziesz w następnym rozdziale. T inline — wymusza traktowanie danego elementu tak samo jak elementu wstawianego; T block — wymusza traktowanie danego elementu tak samo jak elementu blokowego; T list-item — wymusza traktowanie danego elementu tak samo jak listy; T table-cell — wymusza traktowanie danego elementu tak samo jak tabeli.
5 Praktyczne projekty W poprzednich rozdziałach omówiłem najważniejsze elementy języka HTML5 oraz kaskadowych arkuszy stylów. Całość została zobrazowana krótkimi przykładami. Z e-maili, które trafiają do mnie od czytelników, wiem, że wielu z nich ma problemy z praktycznym zastosowaniem zdobytej wiedzy. Dlatego uznałem, że doskonałym uzupełnieniem niniejszych ćwiczeń będzie rozdział, w którym zademonstruję, jak wykorzystać zdobytą wiedzę w praktyce. Właściwie od chwili, gdy usiadłem do pisania ćwiczeń, które masz w ręku, myślałem nad tym, jakie praktyczne przykłady wybrać, aby pokazać Ci zasadę tworzenia stron WWW. Ostatecznie uznałem, że wspólnie stworzymy miniwitrynę z witrażami autorstwa Anny Danowskiej. Niniejszy podrozdział w całości będzie mieć formę jednego dużego ćwiczenia. W każdej chwili podczas wspólnej pracy możesz odwołać się do strony http://annadanowska.pl/, na której znajdziesz gotowy projekt.
Szkielet strony Na wstępie założyłem sobie, że na stronie znajdą się następujące elementy:
168
HTML5 • Ćwiczenia praktyczne
T nagłówek, T menu nawigacyjne, T dwie kolumny w głównej części, T stopka.
W związku z takimi planami potrzebuję ogólnego szkieletu strony, który zapewni mi możliwość stworzenia planowanej witryny. Listing szkieletu zamieściłem poniżej. Myślę, że jego omawianie nie jest konieczne, ponieważ każdy z elementów powinien być Ci znany.