(X)HTML

XHTML

  • 2010-10-31 18:27
  • 12 komentarzy
  • 2644 odsłony
  • Oceń ten tekst jako pierwszy
Ten artykuł wymaga dopracowania!

Jeżeli możesz popraw ten artykuł według zaleceń, które możesz znaleźć na stronie Artykuły do poprawy. Po dopracowaniu tego tekstu można usunąć ten komunikat.



Spis treści

     1 Różnice między HTML i XHTML
          1.1 Czym XHTML od HTML się nie różni
          1.2 Typ MIME
          1.3 Poprawność kodu
          1.4 Zamykanie znaczników
          1.5 Wielkość liter
          1.6 Znaczniki formatujące i style
          1.7 Atrybuty
          1.8 Sekcje CDATA
          1.9 Atrybut name elementu a
          1.10 Mieszanie z innymi aplikacjami XML
          1.11 Ruby
     2 Zobacz też
     3 Przypisy


Różnice między HTML i XHTML


Czym XHTML od HTML się nie różni


XHTML wcale nie jest bardziej semantyczny od HTML. XHTML to tylko HTML przekształcony na dialekt XML-a. Przekształcony wraz z wersją Transitional, która dopuszcza używanie znaczników takich jak font i Frameset, która pozwala na tworzenie ramek.

Zobacz: http://pornel.net/xhtml

Typ MIME


Dokumenty XHTML powinny być wysyłane jako application/xhtml+xml. Aby tak się stało, nadaj plikowi rozszerzenie .xhtml. Dokument XHTML 1.0 możesz wysłać jako text/html, jeśli jego składnia jest kompatybilna wstecz. Wysyłanie XHTML 1.1 jako text/html jest niezalecane.

Wysyłając XHTML możesz również użyć MIME przypisanych dla XML: text/xml lub application/xml.

http://www.w3.org/TR/xhtml-media-types/#h-3.5

Poprawność kodu


Dokumenty w języku XHTML muszą być składniowo poprawne, żeby mogły być wyświetlone. Jeśli w pliku XHTML znajdzie się choć jeden błąd składni, przeglądarka wyświetli informację o błędzie1.

Zamykanie znaczników


O ile HTML jest oparty na SGML, gdzie nie ma obowiązku zamykania każdego znacznika, o tyle w przypadku opartego na XML-u XHTML-a jest to wymagane. Te znaczniki, które w HTML zostawiać otwarte można (jak p,  dd, th) lub trzeba (br, img), w XHTML trzeba zawsze zamykać. Można posłużyć się przy tym składnią samozamykających się znaczników (np. <br />).

Jeśli serwujesz XHTML przeglądarkom, które go nie wspierają, znaczniki, które w HTML muszą być otwarte zamykaj za pomocą sekwencji „/>”, przed którą postaw spację, a pozostałe zamykaj jak w HTML.

HTML:
<body>
To jest przykład<br>
</body>


XHTML:
<body>
To jest przykład<br />
</body>


Każdy znacznik w XHTML-u musi posiadać zamknięcie!

Wielkość liter


HTML nie rozróżniał wielkości liter - znaczniki można było pisać zarówno małymi jak i wielkimi literami. XML — a więc i XHTML — rozróżnia, toteż nazwy tagów i atrybutów należy pisać zawsze małymi literami. Wyjątek stanowi tag !DOCTYPE który musi być zapisany wielkimi literami.

Ponadto wartości takich atrybutów jak dir, method czy shape w XHTML muszą być pisane małymi literami.

Znaczniki formatujące i style


Załączanie stylów zgodne z językiem XML powinno wyglądać następująco:
Styl zewnętrzny:
<?xml-stylesheet href="styl.css" type="text/css"?>

Styl wewnętrzny:
<?xml-stylesheet href="#style" type="text/css"?>
...
<style type="text/css" id="style">
 p.normal {font-size: 10pt; font-family: Tahoma; }
</style>
...


Atrybuty


Według specyfikacji, w XML każdy atrybut powinien znaleźć się w cudzysłowach, bez wyjątków. W HTML-u przeglądarki akceptowały parametry bez cudzysłowów, o ile nie naruszało to składni dokumentu (co nie oznacza, że taki był standard).

Poniższy kod jest przez przeglądarki akceptowany w HTML:
<body>
<a href="index.html" target=_blank>główna</a>
</body>
- działa
a w XHTML nie - należy napisać:
<body>
<a href="index.html" target="_blank">główna</a>
</body>


Poza tym, w XHTML-u nie istnieje forma skrócona atrybutów bez wartości. Choć taka deklaracja będzie w HTML poprawna, w XHTML-u nie ma prawa działać:
<body>
<input readonly><br>
</body>

Zamiast tego należy użyć
<body>
<input readonly="readonly"><br>
</body>

W cudzysłowach powinna znajdować się nazwa atrybutu. Aby wyłączyć opcję, atrybut wystarczy pominąć.

Sekcje CDATA


Sekcje CDATA w XML pozwalają na zapisywanie <, > i & bez uciekania się do domyślnie zdefiniowanych encji. W plikach XHTML w takich sekcjach umieszcza się zwykle skrypty w języku JavaScript oraz style CSS.
W języku HTML używano do tego komentarzy, lecz ponieważ w XML-u przed rozpoczęciem parsowania parser ma prawo usunąć wszystkie komentarze, skrypty osadzone w znakach komentarza, tak samo jak style osadzone w ten sposób, mogłyby zostać zignorowane.

<![CDATA[
function sign(num){
   if (num > 0)
      return +1;
   else if (num < 0)
      return -1;
   else
      return 0;
}
]]>

Należy unikać sytuacji, w której wewnątrz sekcji CDATA miałby się znaleźć ciąg znaków „]]>”. Jeśli z jakiegoś powodu musisz użyć takiego ciągu, zapisz go w inny sposób: "]]\>" albo "]]" + ">". W ostateczności możesz przerwać sekcję CDATA i rozpocząć ją od nowa: „]]>]]&gt;<![CDATA[”

Nie ma potrzeby umieszczać skryptów ani stylów w sekcji CDATA, jeśli nie zawierają one znaków <, > ani &.

Atrybut name elementu a


Atrybut name w HTML 4.01 wyznaczał nazwę kotwicy. Wartość tego atrybutu była wykorzystywana w adresach URI2. W wysyłanym z poprawnym MIME pliku XHTML atrybut name nie może być użyty w ten sposób, ponieważ w dokumentach XML jako identyfikator elementu (tudzież identyfikator fragmentu w adresie URI) może służyć tylko atrybut typu ID, a atrybut name jest typu NMTOKEN.

Mieszanie z innymi aplikacjami XML


W pliku XHTML można osadzić inne aplikacje XML, jak XForms czy MathML i vice versa: XHTML można osadzić na przykład w kanale Atom.

Ruby


W XHTML 1.1 wprowadzono nowość: zestaw znaczników Ruby</wiki>, który jest używany głównie w dokumentach wschodnioazjatyckich do zaznaczenia wymowy lub wstawienia krótkiej adnotacji. Głównym elementem Ruby jest znacznik <ruby>, który z kolei może zawierać znaczniki <rbc> i <rtc>, które zaś mogą zawierać tagi <rt>, <rb> i <rp>. Więcej informacji można znaleźć w oficjalnej specyfikacji Ruby.

Zobacz też


  • Specyfikacja XHTML 1.0
  • HTML i XHTML - najczęściej zadawane pytania (FAQ)

Przypisy


[1] Przeglądarki nie wyświetlą błędu, jeśli XHTML wysyłasz jako HTML.
[2] W praktyce poprzez atrybut name można się do każdego elementu odwołać w skryptach, przy użyciu DOM poziomu 0, implementowanego w przeglądarkach ze względu na wsteczną zgodność. W Internet Explorerze da się to zrobić również przy pomocy document.getElementById(), co jest sprzeczne ze standardem.

12 komentarzy

stempek 2008-10-26 10:15

Witam
Autorowi jak i wszystkim zainteresowanym polecam lekturę
http://pornel.net/xhtml
http://pornel.net/transitional

i jeżeli chcesz pisać kod w 100% poprawnie, to uwzględniając że 50% ludzi siedzi na IE - albo piszesz w html dla wszystkich albo w xhtml skreślając połowe na starcie.

Kooba 2006-07-18 12:50

co za bzdury! w html'u tez atrybuty trzeba było brac w cudzysłowia tylko nie kazdy to stosował, po co wiec uczysz złych nawyków? i co to za pseudo xhtml ?

<a target="_blank"><br>


nie dosc ze atrybut targe - bardzo typowy dla xhtml to jeszcze nie zamkniete br

poza tym co to za tag i czcionka lol ?

i atrybutom bez wartosci nie daje sie "on" "true" czy cos w tym stylu tylko jego nazwe, np

readonly="readonly"

i tego sie trzymaj...

Coldpeer 2006-07-16 20:41

Ktos... oczywiście, chodziło mi o XHTML. Przynajmniej autor powinien w tym tekście napisać  XHTML, bo w końcu tekst dotyczy różnic między XHTML a HTML.

Kooba 2006-07-16 19:16

Mętne to troche, kazdy z podpunktów mozna było "ładniej" napisać

a poza tym wypadało by jeszcze napisac o:

- korzysciach zwiazanych ze stosowaniem xhtml'a i mitach jakie wokół niego narosły
- o wykorzystywaniu xml'a w xhtml'u
- wiecej o CDATA - w sumie nie wiadomo o co chodzi

Ktos 2006-07-15 22:10

Bzdura. Ktoś ci broni napisać sobie w XML-u znaczniki <jakisZnacznik /> czy <BLA />? Nie. Ale w XHTML-u znaczniki małe są wymagane i tyle - tak definiuje DTD.

Coldpeer 2006-07-15 10:56

" W XML-u przyjęto, że nazwy tagów i parametrów należy pisać małymi literami."
przyjęło się? Taki jest wymóg :P

Marooned 2006-07-15 07:03

FrontPage buachacahca, kod jaki generuje ten program mozna se w buty wlozyc. Ja bym nie smial nazwac tego HTMLem...

ŁF 2006-07-14 23:38

bolek, używaj podglądu, zamiast zapisywać stronę co 5 minut

gulldarek 2006-07-02 10:04

bolek92: powtórzę za Marooned - co to za herezje? Uważasz FP i Zajączka za programy wyznaczające standard pisania w HTML? Podpowiem, że istnieje organizacja o nazwie W3 Consortium zajmująca się ustalaniem standardów...

Coldpeer 2006-07-01 20:07

Pisało się i tak i tak - jak kto lubi tak pisał.
A tak po za tym cienki jakiś ten opis jak na razie :P

bolek92 2006-06-23 17:33

To sobie zobacz frontpejdża czy zajączka...

Marooned 2006-06-22 14:50

<quote>W HTML-u zwyczajowo przyjmowano, iż tagi należy pisać dużymi literami,</quote> eee, od kiedy? co to za herezje? odkąd pamiętam w HTMLu pisało się małymi literami...