Rozdział 9.
HTML a XHTML
Co to jest XHTML?
XHTML to EXtensible HyperText Markup Language
XHTML jest niemal identyczny z HTML 4.01
XHTML ma czystszą formę niŜ HTML
XHTML jest aplikacją XML
XHTML 1.0 jest od 26 stycznia 2000 oficjalnym standardem sieciowym. Rekomendacja W3C
oznacza, Ŝe specyfikacja jest stabilna i przetestowana.
Po co XHTML?
W sieci umieszczanych jest coraz więcej stron WWW, rośnie teŜ liczba „złych” stron – stron,
napisanych niepoprawnie. Taki kod HTML:
<html>
<head>
<title>Bł
ę
dny kod HTML!</title>
<body>
<h1>TU JEST EWIDENTNY BŁ
Ą
D!
</body>
będzie wyświetlany poprawnie w większości przeglądarek, mimo, Ŝe zawiera błąd składni –
brakuje w nim znacznika zamykającego
</h1>
.
XML nie dopuszcza takich wpadek. Dlatego połączenie języków XML i HTML daje nadzieję na
stworzenie dobrego i stabilnego narzędzia. Dokumenty XHTML są interpretowane przez
wszystkie urządzenia radzące sobie z językiem XML. XHTML pozwala tworzyć dokumenty o
poprawnej strukturze, które działają we wszystkich przeglądarkach i są kompatybilne wstecznie.
Czy XHTML wymaga specjalnych przygotowa
ń
?
XHTML to kolejna generacja języka HTML, ale niewątpliwie trochę czasu upłynie zanim ludzie i
urządzenia do niej się dostosują. Trochę, lecz niezbyt wiele. NaleŜy pamiętać, Ŝe między HTML
4.01 a XHTML nie ma wiele róŜnic, nie będzie więc to trudny proces.
Podstawowe wymagania to kod pisany małymi literami i zamykanie znaczników – chyba moŜesz
je spełnić.
Jakie s
ą
najwa
Ŝ
niejsze ró
Ŝ
nice mi
ę
dzy XHTML a HTML?
Elementy XHTML muszą być poprawnie zagnieŜdŜane
Dokumenty XHTML muszą mieć poprawną formę
Nazwy znaczników muszą być pisane małymi literami
Wszystkie elementy XHTML muszą być zamknięte
Co to oznacza konieczno
ść
poprawnego zagnie
Ŝ
d
Ŝ
ania elementów?
W języku HTML wymaganie prawidłowego zagnieŜdŜania nie musi być restrykcyjnie spełniane.
Na przykład wyraŜenie sformułowane w HTML tak:
<b><i>Tekst pogrubiony i pisany kursyw
ą
...</b></i>
będzie w XHTML absolutnie niepoprawne. W XHTML zagnieŜdŜenie musi być prawidłowe:
<b><i>Tekst pogrubiony i pisany kursyw
ą
... </i></b>
Na przykład częstym błędem w zagnieŜdŜonych listach jest zapominanie, Ŝe lista zagnieŜdŜona
musi być umieszczona w obrębie elementu
li
. Oto zły zapis:
<ul>
<li>Punkt 1</li>
<li>Punkt 2
<ul>
<li>Zagnie
Ŝ
d
Ŝ
ony 1</li>
<li>Zagnie
Ŝ
d
Ŝ
ony 2</li>
</ul>
<li>Punkt 3</li>
</ul>
A tutaj poprawny odpowiednik błędnego kodu:
<ul>
<li>Punkt 1</li>
<li>Punkt 2
<ul>
<li>Zagnie
Ŝ
d
Ŝ
ony 1</li>
<li>Zagnie
Ŝ
d
Ŝ
ony 2</li>
</ul>
</li>
<li>Punkt 3</li>
W poprawnym przykładzie znacznik
</li>
został wstawiony za znacznikiem
</ul>
listy
zagnieŜdŜanej.
Co oznacza,
Ŝ
e dokument musi mie
ć
poprawn
ą
form
ę
?
Oto wymagania, które określają poprawność formy. Wszystkie elementy XHTML muszą być
zagnieŜdŜone w podstawowym elemencie
html
. Elementy podrzędne danych elementów
stosowane są w parach i są prawidłowo zagnieŜdŜone w elemencie nadrzędnym. Podstawowa
struktura dokumentu prezentuje się tak:
<html>
<head> ... </head>
<body> ... </body>
</html>
Dlaczego nale
Ŝ
y stosowa
ć
małe litery?
Konieczność stosowania małych liter wynika z tego, Ŝe dokumenty XHTML są aplikacjami XML,
a XML to język czuły na wielkość znaku. Tak więc znaczniki
<br>
i
<BR>
zostaną
zinterpretowane jako róŜne.
Zgodnie z tym, zapisz kodu w takiej formie:
<BODY>
<P>Tekst</P>
</BODY>
jest niepoprawny. Poprawna postać powinna wyglądać tak:
<body>
<p>Tekst</p>
Dlaczego nale
Ŝ
y pami
ę
ta
ć
o znacznikach zamykaj
ą
cych?
Wszystkie elementy, które nie są puste, muszą mieć znaczniki zamykające.
Zgodnie z tym, zapisz kodu w takiej formie:
<p>Tekst
<p>Kolejny akapit
jest niepoprawny. Poprawna postać powinna wyglądać tak:
<p>Tekst</p>
<p>Kolejny akapit.</p>
A co z elementami pustymi?
Elementy puste muszą takŜe zostać zaopatrzone w znacznik zamykający lub znacznik otwierający
musi kończyć się znakami
/>
.
Oto nieprawidłowa postać wyraŜenia:
Tu dodamy łamanie wiersza<br>
A tu pojawi si
ę
linia pozioma<hr>
Poprawny zapis wygląda tak:
Tu dodamy łamanie wiersza<br />
A tu pojawi si
ę
linia pozioma<hr />
lub
Kolejna linia <hr></hr>
Dodatkowa spacja w zapisie znacznika zamykającego,
<br />
, jest konieczna, aby zachować
zgodność z obecnymi przeglądarkami.
Co oznacza stwierdzenie,
Ŝ
e XHTM ma czystsz
ą
form
ę
?
XHTML nie dopuszcza dowolności. Nazwy znaczników i atrybutów muszą być pisane małymi
literami, wartości atrybutów muszą być podawane w cudzysłowach, skracanie definicji atrybutu
jest niedopuszczalne, atrybut
id
zastępuje nazwę atrybutu, a DTD definiuje w dokumentach
XHTML elementy obowiązkowe.
Skoro tak, to zapis:
<table WIDTH=100%>
będzie nieprawidłowy z dwóch powodów: nazwa atrybutu pisana jest wielkimi literami, a wartość
nie została ujęta w cudzysłowach. Oto zapis poprawny:
<table width=”100%”>
Rezygnacja z moŜliwości skróconego zapisu atrybutów oznacza, Ŝe nie wolno zapisać tak:
<input checked>
<input readonly>
<input disabled>
<option selected>
NaleŜy zastosować pełną postać zapisu:
<input checked=”checked”>
<input readonly=”readonly”>
<input disabled=”disabled”>
<option selected=”selected”>
Co oznacza,
Ŝ
e atrybut id zast
ę
puje nazw
ę
?
W HTML 4.01 stosowany jest atrybut
name
, który definiuje nazwy następujących elementów:
a
,
frame
,
iframe
,
img
i
map
. W XHTML jego rolę przejmuje atrybut
id
.
Taki zapis będzie w XHTML niepoprawny:
<img src="obraz.gif" name="obraz" />
A tu postać prawidłowa:
<img src="obraz.gif" id="obraz" />
W celu zachowania zgodności z obecnymi wersjami przeglądarek, na razie naleŜy stosować oba
atrybuty,
name
i
id
, z tymi samymi wartościami. Na przykład:
<img src="obraz.gif" id="obraz" name="obraz" />
NaleŜy takŜe pamiętać o dodatkowej spacji przed
/>
(patrz uwaga o znacznikach zamykających w
XHTML).
Co to jest atrybut lang?
Atrybut
lang
jest stosowany niemal z kaŜdym elementem XHTML. Określa on język, w jakim
zdefiniowana została zawartość:
<div lang="no" xml:lang="no">Kici kici!</div>
Jakie s
ą
obowi
ą
zkowe elementy XHTML?
Wszystkie dokumenty XHTML muszą zawierać deklarację
DOCTYPE
. Obowiązkowe są takŜe
elementy
html
,
head
i
body
, a element
title
musi być zawarty w obrębie elementu
head
. Oto
podstawowy szablon dokumentu XHTML:
<!DOCTYPE Doctype goes here>
<html>
<head>
<title>Tytuł dokumentu</title>
</head>
<body>
Zawarto
ść
dokumentu
</body>
</html>
Deklaracja
DOCTYPE
nie jest częścią samego dokumentu XHTML, nie jest teŜ elementem XHTML
i nie moŜe mieć znacznika zamykającego. Deklaracja
DOCTYPE
jest zawsze umieszczana w
pierwszym wierszu kodu dokumentu XHTML.
Jak wygl
ą
da przykładowy dokument XHTML?
Oto przykład dokumentu XHTML:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Dokument XHTML</title>
</head>
<body>
<p>Tekst</p>
</body>
</html>
Deklaracja DOCTYPE określa typ dokumentu:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Reszta dokumentu wygląda jak zwykły dokument HTML:
<html>
<head>
<title>Dokument XHTML</title>
</head>
<body>
<p>Tekst</p>
</body>
</html>
Deklaracje typu dokumentu zostały zawarte w dodatku A.