|
HTML 4.01
|
XHTML 1.0
|
Reakcja na błędy w kodzie
|
Stara się wyświetlić, cokolwiek by się nie stało.
|
Strona nie jest wyświetlona (teoretycznie – w praktyce, jeśli występują błędy przeglądarki traktują kod jako HTML)
|
Typ MIME
|
text/html (tylko)
|
application/xhtml+xml
application/xml
text/html (powoduje, że XHTML jest traktowany jak HTML – zaprzecza idei używania XHTML http://www.hixie.ch/advocacy/xhtml. Pozwala wyświetlać stronę w IE. Można stosować skrypty negocjacji: http://kurs.browsehappy.pl/HTML/Wysylanie )
|
Przestrzeń nazw
|
prze... – co?
|
Element główny html musi zawierać atrybut xmlns określający przestrzeń nazw XHTML: http://www.w3.org/1999/xhtml
|
Stosowanie aplikacji XML
|
Nie można
|
można stosować aplikacje XML (jak MathML czy SVG) bezpośrednio w dokumencie
|
Zamykanie znaczników
|
Nie trzeba
<p>To jest akapit
<p>Drugi akapit
|
Konieczność
<p>Akapit 1</p>
<p>Akapit 2</p>
|
Kolejność znaczników
|
<a><b><c></a></c></b> - jest ok
<a><b><c></c></b></a> - jest ok
|
<a><b><c></c></b></a> - tylko tak jest ok
|
Case sensitive
|
Nie ma.
<a></A> jest poprawne
|
Jest.
<a></a> - wszystkie znaczniki i nazwy atrybutów pisane małymi literami (jedynie DOCTYPE pisany wielkimi literami).
|
Puste elementy
|
Nie zamykamy.
<br>
<hr>
<img>
|
Zamykamy.
<br/> lub <br></br>
<hr/> lub <hr></hr>
<img/><img></img>
|
Atrybuty
|
Dowolna notacja, nie trzeba obejmować cydzysłowem
<a OnCliCk=b>
|
Małymi literami*. Zawsze w cudzysłowie lub apostrofach
<a onclick='b'>
|
Skrótowy zapis atrybutów
|
Dozwolony.
<input type=radio checked>
|
Każdy atrybut musi mieć wartość
<input type='radio' checked='checked'/>
|
Komentatarz <!-- --> używany do ukrywania kodu JS przed starszymi przeglądarkami
|
Używany. Działa.
|
Niezalecany. Parser XML może usunąć taki kod jako, że komentarz nic nie wnosi.
Starsze przeglądarki i tak nie obsługują XHTML-a.
Rozwiązanie – sekcje CDATA, np.
<script type='text/javascript'><![CDATA[ kod ]]></script>
Rozwiązanie (lepsze): załączać pliki z kodem JS, a nie umieszczać ten kod w kodzie XHTML.
|