Tohle vezmu velice stručně.
V přednáškách máme (skoro) tuhle, tak proč ji nepoužít:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"> <head> <meta http-equiv="content-language" content="cs" /> <meta http-equiv="content-type" content="text/html; charset=windows-1250" /> <meta name="author" content="jmeno" /> <title>Název stránky</title> </head> <body> </body> </html>
Chcete-li trochu vysvětlit, co která část znamená, podívejte se na stránku struktura kódu (1). Každopádně do atributů "content" u tagů meta v hlavičce rozhodně vložte nějaké inteligentní hodnoty, pokud byste tam nechali content="jmeno", tak vám to asi neprojde, stejně jako title s hodnotou "Název stránky".
Ve výše uvedeném vzoru není uveden oproti našim přednáškám první řádek, tzv. deklarace XML, tj. <?xml version="1.0" encoding="windows-1250"?>, což je záměr. Jestli Vás zajímá pojednání na téma, proč tam není, čtěte dál; jestli vás to nezajímá, můžete zvesela pokračovat na další kapitolku.
Přípustné by měly být obě varianty, tj. včetně XML deklarace nebo bez ní; správněji by tam asi být měla. Rozhodně by nikomu neublížilo mít v začátku kódu o řádek více, problém je však jinde - zkusím ho naznačit.
Existují různé režimy neboli módy prohlížečů. Při normálním surfování o tom ani nevíte. O tom, v jakém režimu bude prohlížeč pracovat, se rozhodne on sám na základě doctype dané stránky (případně jeho absence); a podle toho, v jakém je režimu, pak interpretuje (X)HTML a CSS.
Vezmu to konkrétně: tzv. box model, neboli počítání šířky prvků. IE ve standardním režimu to dělá tak, že vezme šířku prvku, zadanou v CSS, např. width: 100px; připočítá případné vnitřní okraje padding: 20px; a obrysové čáry border: 3px solid #00000;, a tak mu vyjde celková šířka prvku. V tomto případě tedy od hrany k hraně bude celková šířka: 3px obrys + 20px okraj + 100px vlastní šířka + 20px okraj + 3px obrys = 146px. A takhle je to správně podle specifikace.
Bohužel, IE6 v režimu quirk počítá šířku špatně. Jako výslednou šířku použije zadanou hodnotu width: 100px;; zadané paddingy a bordery jsou uvažovány jako součást tohoto prvku. Takže v quirk módu se stejný prvek vykreslí se šířkou 100px, přičemž tato hodnota obsahuje 2*20px vnitřní okraj a 2*3px obrys. Na vlastní šířku tedy zbývá v tomto případě 54px. Celková i vlastní využitá šířka je tedy úplně jiná, než ve standardním režimu se správným vykreslením.
Z toho vyplývá, že je vhodné napsat takové doctype, které uvede IE6 do režimu standardního. A smutnou pravdou zůstává, že ač by v kódu měla být deklarace XML, právě její přítomnost způsobí, že IE6 bude v režimu quirk. A to je důvod, proč bude možná lepší ji tam neuvádět.
Pokud se Vám takhle popsaná záležitost nezdá zcela jasná, podívejte se (pokud možno v IE6, ve FF se nic nestane) sem: rozdílné režimy IE