XHTML
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.
<!-- Należy: * napisać, co to jest XHTML, kiedy został wymyślony, itpp. * napisać coś więcej na temat nieistniejących różnic między XHTML i HTML * napisać coś więcej o mieszaniu XHTML z innymi aplikacjami XML * coś jeszcze, czego nie umiem tego ubrać w słowa... -→
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: „]]>]]><![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 , 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.0Przypisy
.. [#] Przeglądarki nie wyświetlą błędu, jeśli XHTML wysyłasz jako HTML.[1] 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
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...
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.
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
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.
" 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
FrontPage buachacahca, kod jaki generuje ten program mozna se w buty wlozyc. Ja bym nie smial nazwac tego HTMLem...
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...
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
<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...
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.