background image

             

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>

background image

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> 

background image

<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 

background image

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”> 

background image

<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. 

background image

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.