Stary dobry HTML służył webmasterom przez lata, niejednego przyprawiając o ból głowy. Język, który z początku opracowany został jedynie dla celu opisywania informacji z czasem obrósł w rozliczne funkcje służące zmianie wyglądu stron WWW. Przeglądarki, każda na własny sposób interpretująca znaczniki, wzmogły chaos. Podobnie coraz szerzej wykorzystywane w ostatnich latach alternatywne urządzenia oferujące dostęp do Internetu, takie jak telefony komórkowe czy palmtopy.
o autorach
Michał Paluchowski CEO, właściciel i redaktor vortalu NetHut.pl. Jego ulubionym tygodnikiem jest Wprost, a na co dzień z przyjemnością czyta Gazetę Wyborczą. Jest zakochany w muzyce i komputerach, czasem nieco ekscentryczny. Zawsze otwarty na nowe znajomości.
Łącznie napisał dla nas 45 artykułów.tych samych autorów
- IMAP w stylu PHP [MP]
- Własne RSS [MP]
- Rodzina XSL [MP]
- Wprowadzenie do XML [MP]
- Rozszerzenia XSSI [MP]
zobacz również
Nadszedł czas by na polu bitwy standardów wprowadzić porządek. Latarnią pośród ciemności ma ambicje stać się XHTML - eXtensible HyperText Markup Language. Tylko co to właściwie jest? Nie ma powodów do obaw, to ciągle ten sam dobrze znany HTML, okrojony z funkcji definiujących wygląd elementów (które zastąpić ma CSS) i napisany w standardzie XML.
XML... co?
Żeby zrozumieć co wydarzyło się na drodze transformacji pomiędzy HTML a XHTML trzeba najpierw określić czym jest XML. Otóż jest to w skrócie sposób tworzenia nowych języków opisu informacji, których znaczniki zawarte są w dokumentach DTD - Document Type Definition. XML sam w sobie nie jest językiem. XHTML posiada trzy zdefiniowane DTD:
- Strict - najbardziej restrykcyjny, zawiera jedynie znaczniki czystego XHTML
- Transitional - mniej restrykcyjny, kompatybilny z wcześniejszymi wersjami HTML. Sama jego nazwa oznacza "przejściowy".
- Frameset - identyczny z Transitional, jednakże zamiast zwykłej treści strony zawiera definicje ramek Frames
Najlepszym rozwiązaniem jest korzystać z opcji Strict, gdyż zapewnia ona maksymalną zgodność ze standardem. Ponieważ jednak wymaga pewnej wprawy w pisaniu kodu i nierzadko całkowitej zmiany dotychczas stosowanego sposobu projektowania stron WWW, wiele osób zdecyduje się zapewne na wersję Transitional porzucając restrykcje na rzecz większej swobody tworzenia.
Komu to potrzebne?
Skoro przeskok na XHTML wymaga zmiany metod działania stosowanych przez lata naturalnym jest pytanie, po co właściwie się w to pchać?
Przede wszystkim standardyzacja. Aby uprościć korzystanie z zasobów sieci coraz szerszej gamie nowoczesnych urządzeń kod stron WWW powinien być maksymalnie ujednolicony. Reguły XML, a więc i XHTML wymuszają poprawność formalną dokumentów zdejmując z przeglądarek internetowych ciężar korygowania błedów w kodzie. Sam kod stron stanie się bardziej przejrzysty, łatwiejszy w pisaniu i modyfikacjach.
Dodatkowo XHTML posiada bardzo istotną cechę - modularyzację. Oznacza to, że podstawowa wersja języka może być dowolnie rozszerzana poprzez dodanie odpowiednich modułów. Nie trzeba się przy tym martwić ich obsługą przez przeglądarki - jest ona częścią standardu.
Szczególnie obietnica bardziej przejrzystego kodu powinna być kusząca dla szerokiego grona twórców stron. Czas przejść do konkretów.
Jak się przesiąść?
Nowy dokument, podobnie jak w HTML zaczyna się od deklaracji wersji wykorzystywanego języka. Ponieważ dokumenty pisane w XHTML są zgodne ze standardem XML, zaczynamy od linijki:
<?xml version="1.0" encoding="UTF-8"?>
Określa to wersję standardu XML, z której korzystamy (tutaj 1.0) oraz standard kodowania znaków w dokumencie - UTF-8, który naturalnie można zmienić np. na iso-8859-2. Dalej określamy odpowiednie DTD:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Właściwą zawartość dokumentu jak zawsze zamykamy znacznikiem <html> dodając mu kilka opcji:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
Atrybut xmlns to XML NameSpace - dosłownie "przestrzeń nazw". Pozostałe dwa atrybuty określają język, w którym napisany jest dokument.
Reszta dokumentu wygląda zupełnie jak HTML, z drobnymi różnicami.
Pierwszą różnicą jest, że elementy zagnieżdżone wewnątrz innych, muszą zostać zakończone jeszcze przed zamknięciem elementów nadrzędnych. Nie możemy napisać:
<p>tu jest trochę <em>tekstu.</p></em>
ale musimy:
<p>tu jest trochę <em>tekstu</em>.</p>
Druga sprawa: wszystkie znaczniki HTML'a muszą być pisane małymi literami, co wynika ze specyfiki języka XML, rozróżniającego małe i duże litery. <A HREF... nie przejdzie przez walidator. Koniecznie musimy napisać <a href....
Wszystkie znaczniki muszą posiadać swoje pary zamykające. W przypadku takich znaczników jak <p> są to kończące </p>. Natomiast znaczniki nie posiadające osobnego zakończenia należy zamykać przez dodanie ... />, np: <br />. Standard XML nie wymaga umieszczania spacji przed znakiem / jednakże w XHTML dodaje się go ze względu na zgodność ze starszymi przeglądarkami.
Wszystkie wartości parametrów muszą być wpisywane w cudzysłowach. Nie możemy więc napisać:
<div class=menu>
ale musimy:
<div class="menu">
Nie wolno także używać skróconych parametrów, jak checked czy noshade. Nie możemy napisać:
<hr noshade>
a musimy:
<hr noshade="noshade">
Inne, na które należy uważać to:
ismap="ismap"
declare="declare"
nowrap="nowrap"
compact="compact"
noshade="noshade"
checked="checked"
Aby do dokumentu wstawić style CSS lub skrypty, musimy zrobić to w ten sposób:
<script>
<![CDATA[
... zawartość skryptu ...
]]>
</script>
Dzięki czemu unikniemy problemów z interpretacją znaków < i &, jakie może zawierać kod skryptu. Znacznie lepiej i łatwiej jest jednak wstawiać deklaracje CSS i skrypty z osobnych plików. Problemy ze znakiem & mogą pojawić się także przy odnośnikach, kiedy trzeba podać w nich pewne parametry. Należy wtedy wpisywać & zamiast &.
Tyle w kwestiach formalnych języka. Dodatkowo jeśli zdecydujesz się korzystać z wersji Strict - a taka jest zalecana, to wszystkie atrybuty określające wygląd, a więc rodzaje czcionek, kolory, rozmieszczenie itp. będziesz musiał zamienić na odpowiednie deklaracje w CSS.
Tak właśnie wygląda nasze nowe narzędzie. Aby przekonać się o jego prawdziwej sile warto przyglądnąć się kodowi dobrze napisanej strony w XHTML. Szczególnie takiej, gdzie zrezygnowano z wykorzystania tabel do tworzenia interfejsu na rzecz pozycjonowania z CSS. Bardziej szczegółowe informacje na temat obecnej i przyszłych wersji standardu jak zawsze znajdują się na stronie W3C. Dobrej zabawy z XHTML!