Nestává se často, abych tady psal o novince, kterou jsem objevil už
před půl rokem. Nicméně jsem potřeboval „trochu“ času, abych
všechno zažil a trošku si to v hlavě uspořádal.
Jsouce bytostným amatérem v tvorbě webu prošel jsem zřejmě celým
životním cyklem každého natěšeného nadšence:
- 1. stádium: seznámení se s HTML a první stránka, v mém
případě slepená v FrontPage
- 2. stádium: průzkum webu, zjištění, že exxistuje něco jako standardy
W3C, CSS, beztabulkový layout, DOM, Doctype. Následovalo zděšení, co
všechno neznám
- 3. stádium: studium literatury, webových stránek o tvorbě webu,
doporučení W3C
- 4. stádium: hurá, moje stránky jsou XHTML 1.0 Strict Valid
- 5. stádium: vydávání chytrých rad všude okolo, objevení Webylonu a prvotní odmítnutí názorů zde
prezentovaných
- 6. stádium: první pochybnosti, opětné studium skvělé knihy XDHTML od
autora Pavola Michle, potvrzení mnoha podezření, kterých jsem četbou
Webylonu nabyl
- 7. stádium: tady ten článek.
O co vlastně jde. Autor, cudně se skrývající pod jménem
Chamurappi, ostře kritizuje počínání konsorcia W3C, nekoncepčnost a
zmatenost doporučení, neopodstatněnost zavádění XHTML 1 (1.1) ve formě
jaké je. Zárověň navrhuje řešení . Oprostím-li se od
stále ještě mnou rezonujících sympatií ke XHTML 1 (1.1) musím dát
autorovy za pravdu v následujících bodech:
- XHTML 1.0 je prakticky, v nejrozšířenějším prohlížeči,
funkční pouze pokud stránka posílá MIME typ text/html, čímž
prohlížeč značky XHTML interpretuje jako HTML, to že nedochází ke
zmatkům je důsledkem „přirozené“ inteligence parserů
v prohlížečích. Prohlížeč striktně uplatňující definici HTML by
nezobrazil stránku správně. Jde to obejít na straně serveru a posílat IE
MIME typ text/html (a nebo application/xml) a ostatním MIME typ
application/xhtml+xml. Prakticky to má za následek, že prohlížeče jako
Firefox a Opera čekají až se natáhne celá stránka a
potom ji buď zobrazí, nebo vypíšou chybu. Takže ani nevím co je lepší,
jestli stránka s nepodstatnou chybou, která se správně zobrazí
všude, nebo tatáž stránka, která se zobrazí jenom někde.
- rozdíl mezi HTML a XHTML – syntaxe
- HTML tagy, můžu psát malými i velkými písmeny, XHTML pouze
malými, že by obrana proti hebmilo
textu ?
- v HTML nemám povinnost uvádět DOCTYPE dokumentu, XHTML je to
povinné. DOCTYPE říká validátoru, podle jakého DTD má stránku
validovat. Zároveň DOCTYPE přepíná prohlížeče mezi režimy STD a quirk.
No, toto by snad šlo řešit řešit nějakou značkou <quirk>, místo
sáhodlouhé definice DOCTYPE.
- XHTML zakazuje křížení elementů – prasárna, které je se nutno
vyvarovat i HTML
- v HTML jsou nepovinné značky HTML, BODY, HEAD, v XHTML jsou
povinné
- v HTML není povinnost ukončovat některé párové značky P, LI, TR,
TD neboť je zřejmé, že tam kde začíná třeba nový odstavec končí
předešlý, totéž odrážka, totéž sloupec, nebo řádek tabulky a je to
validní. Toto se logicky netýká DIVů, ty se mohou zanořovat do sebe.
V XHTML jsou ukončovací značky i párových tagů povinnné
všude.
- v HTML nepárové značky nemají ukončovací znak „/“,
v XHTML mají povinně.
- HTML (frameset, transicional, strict) a XHTML 1.0 (frameset, transicional,
strict) mají formálně naprosto stejné tagy a to i ty, které slouží
pro prezentační úroveň (FONT, třeba).
- rozdíl mezi HTML a XHTML – parsování
- vzhledem k MIME typu text/html žádný, s možností chybné
interpretace třeba nepárových tagů XHTML (BR versus BR / )
- pokud použijeme application/xhtml+xml, IE zobrazí zdrojový kód
Takže co vlastně budu nadále používat? Nabízí se HTML
4.01 transitional. Proč? Protože mě připadá jako praktické mít
možnost občas a ve zdůvodnitelných případech použít třeba
target=_blank. Proto. A to, že trochu umím i XHTML, no to není
vůbec na závadu, pokud to bude někdo ode mě chtít, můžu sloužit
taky.
P.S.: tenhle blog je XHTML 1.0 Strict, což v žádném případě
nebudu měnit, důvody jsou dva:
- textpattern produkuje XHTML
- jsem líný jako veš
No, podle specifikace HTML 4.01 (resp. XHTML 1.0) tam DOCTYPE být musí. Chamurappi pak tvrdí, že podle SGML tam být nemusí, ale to už je na mě moc :o).
HTML to zakazuje taktéž
Jinak jsem prošel prakticky stejnými fázemi a došel jsem k jednoznačnému závěru, že XHTML mi nepřináší nic dobrého, jenom spusty problémů. Tudíž píši weby v bezproblémovém HTML 4.01 trans :-).
— Lukáš Havrlant 20 03 2006 - 14:39 #
:o)
— Jiri 20 03 2006 - 15:32 #
Lukáš Havrlant: Myslím, že pokud DOCTYPE neuvedu, nic moc se nestane. Parser prohlížeče se podle DOCTYPE stejně neřídí. Pokud tam DOCTYPE není, shodí to (mělo by) všechny prohlížeče do quirku.
Je mě jasné, že když budu chtít použít validátor, tak DOCTYPE tam být musí. Na rozdíl od Chamurappiho, validátor W3C až tak úplně nezavrhuji, dobrý je třeba na to aby našel nějaký neuzavřený DIV, který bourá layot stránky. Jako míra kvality kódu, ale v žádném případě.
Ty křížící se tagy, omen nomen, máš pravdu. To jsem si nějak neuvědomil, že to tak může vyznít, že nějaká specifikace může něco podobného povolit.
— Peca 20 03 2006 - 15:49 #
Našel jsem se. Ale jen v některých bodech:
1. stádium: seznámení se s HTML a první stránka, v mém případě slepená v FrontPage
2. stádium: průzkum webu, zjištění a zděšení co všechno neznám
— ATP 20 03 2006 - 16:13 #
Neustálé zkoumání validnosti a testování produkce různými prohlížeči a validátory záhy omrzí (aspoň mě už to nebaví). Nejde ani tak o lenost (ta je každému přirozená) ale pak furt „řešíte“ tydle hlouposti a nesoustředíte se na obsah…
— Volodja 21 03 2006 - 09:44 #
Jsem líný jako veš
Tak to je i můj případ :)
— Ivorius 21 03 2006 - 14:25 #
Je pravda, že toto je na tvorbě webu asi to nejhorší – validnost a prohlížeče. Já to dělám tak, že nejprve design vypiplám pro Firefox, otestuji v ostatních prohlížečích. Na úplný závěr si pak nechávám IE, kde většinu problémů vyřeší CSS hacky (můj nejoblíbenější je podtržítkový). Ale občas se mi zasteskne po dobách, kdy jsem ještě netušil, že existují nějaké standardy a jiné prohlížeče než IE. Tenkrát bylo vše tak krásné:-)
— Ondrej Páleš 21 03 2006 - 20:17 #