Hagyja el a Doctype-ot, hogy a böngészők a Quirks módba kerüljenek
Ha néhány hónapnál hosszabb időn keresztül tervez weboldalakat, akkor valószínűleg tudatában van annak, hogy az összes böngészőben ugyanazt az oldalt írja. Valójában ez lehetetlen. Számos böngészőt speciális szolgáltatásokkal írtak, amelyeket csak kezelni tudtak. Vagy különleges módon kezelhetik azokat a dolgokat, amelyek eltérnek a többi böngésző kezelésétől. Például:
- A Netscape böngészőben való használatra rétegeket hoztak létre. Más böngészőben nem működnek, és valójában elavult a Netscape 6.x +.
- Az inline kereteket eredetileg csak az Internet Explorer programban hozták létre, és azóta a HTML specifikáció részévé váltak.
- Az Internet Explorer 6.0 további helyet (pl
), kivéve, ha a div összes tartalmát egy (hosszú) sorra írja. (Az IE 6-nak sok más furcsa is van, mint ez.) - A Netscpe 4.7 nem fog megjeleníteni azokat a táblázatokat, amelyek nem szerepelnek a helyes HTML-ben - üres lapot mutat. Ezt a Netscape 6-ban rögzítettük.
A böngésző fejlesztők számára az a probléma, hogy olyan web böngészőket kell létrehozniuk, amelyek hátrányosan kompatibilisek a régebbi böngészőkhöz készült weboldalakkal. A probléma megoldása érdekében a böngészők létrehozták a böngészők működési módjait. Ezeket a módokat a DOCTYPE elem jelenléte vagy hiánya határozza meg, és azt, amit a DOCTYPE hív.
DOCTYPE váltás és "Quirks Mode"
Ha a következő DOCTYPE-t helyezd el a weboldaladon:
A modern böngészők (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) a következőképpen értelmeznék ezt:
- Mivel van egy helyesen írott DOCTYPE, ez kiváltja a szabványos módot.
- Ez egy HTML 4.01 átmeneti dokumentum
- Mivel szabványos módban van, a legtöbb böngésző a tartalmat megfelelő (vagy leginkább kompatibilis) HTML 4.01 átmeneti
És ha ezt a DOCTYPE-t behelyezte a dokumentumba:
Ez azt mondja a modern böngészőknek, hogy a HTML 4.01 oldalát a DTD-vel összhangban kell megjeleníteni.
Ezek a böngészők "szigorú" vagy "szabványos" módba kerülnek, és az oldal megfelel a szabványoknak. (Szóval, ehhez a dokumentumhoz a címkéket a böngésző teljesen figyelmen kívül hagyhatja, mivel a FONT elemet a HTML 4.01 szigorúan elavulták.)
Ha teljesen kilép a DOCTYPE-ből, akkor a böngészők automatikusan "furcsa" módba kerülnek.
Az alábbi táblázat bemutatja, hogy a közös böngészők mit mutatnak különböző közös DOCTYPE deklarációkkal.
A Microsoft megnehezíti
Az Internet Explorer 6 is rendelkezik azzal a tulajdonsággal, hogy ha valamit a DOCTYPE nyilatkozat felett helyez el, akkor a quirks módba kerül. Tehát mindkét példa az IE 6-ot a quirks módba teszi, bár a DOCTYPE deklarációk szigorú szabványú módban vannak:
és az XHTML 1.1 DOCTYPE:
Plusz, ha eléri az IE6-ot, akkor az IE8-ban és az IE9-ben a Microsoft által hozzáadott "szolgáltatás": a META elemváltás és a weboldal feketelistája. Valójában ez a két böngészőverzió most hét (!) Különböző móddal rendelkezik:
- IE 5.5 quirks mód (IE 8 és 9)
- IE 7 szabványos mód (IE 8 és 9)
- IE 8 szinte szabványos mód (IE 8 és 9)
- IE 8 szabványos mód (IE 8 és 9)
- IE 9 szinte szabványos mód (IE 9)
- IE 9 szabványos mód (IE 9)
- XML mód (IE 9)
Az IE 8 bemutatta a "Kompatibilitási módot" is, ahol a felhasználó megváltoztathatja a renderelési modellt IE 7 módba. Annak érdekében, hogy a DOCTYPE és a META elemek használatával beállíthassa a beállítani kívánt módot, az oldal még mindig kevésbé szabványos üzemmódba kapcsolható.
Mi a Quirks Mode?
A Quirks módot azért hozták létre, hogy segítsen kezelni az összes olyan furcsa megjelenítést és nem megfelelő böngésző támogatást és hackeket, amelyeket a webes tervezők használtak ezek kezelésére. A böngésző gyártók aggodalma az volt, hogy ha átkapcsolták a böngészőjüket a teljes specifikációra, akkor a webes tervezők elmaradnak.
A DOCTYPE kapcsolás és a "Quirks Mode" beállításával a webes tervezők eldöntheti, hogy a böngészők milyen módon szeretnék HTML formátumot megjeleníteni.
Quirks mód effektusok
A legtöbb böngészőnek több hatása van a Quirks módban:
- Néhány böngészőben a dobozmodell a boxmodell IE 5.5 változatában vált ki quirks módban.
- Egyes böngészők nem örökölik a stílusokat táblákba
- A Quirks mód a dramatikusan befolyásolja a CSS és a CSS elrendezésének elemzését, ha az oldalakat normál módba konvertálja a quirks módból, győződjön meg róla, hogy nagymértékben teszteli a CSS elrendezését és elemzését.
- Nézze meg a parancsfájl módban történő változtatásokat. A Firefox például megváltoztatja az id attribútum működését. Az IE8 és az IE9 nagyon drámai változásokat tartalmaz a parancsfájlok forgatásában.
Van is különbség a "szinte standard módban:"
- A belsõ képeket tartalmazó táblázatok magassága a szabványos módtól eltérõen kerül kiszámításra.
Hogyan válasszunk DOCTYPE-t
Részletesebben a DOCTYPE listám cikkében olvashatok, de itt van néhány általános hüvelyszabály:
- Először mindig válassza ki a szabványos módot. És az aktuális szabványt, amelyet használnia kell, a HTML5: Hacsak nincs külön okunk arra, hogy elkerüljük a HTML5 DOCTYPE használatát, ezt kell használni.
- Menj a szigorú HTML 4.01-be, ha valamilyen oknál fogva érvényesítenie kell az örökölt elemeket, vagy el szeretné kerülni az új funkciókat:
- Ha szétválogatta a képeket egy táblázatban, és nem akarja azokat kijavítani, keresse fel az Átmeneti HTML 4.01-et:
- Ne írj szándékosan az oldalakat quirks módban. Mindig használjon DOCTYPE-t. Ezzel a jövőben a fejlesztési időt megtakaríthatja, és valóban nincs haszna. Az IE6 gyorsan elveszíti népszerűségét, és ezzel a böngészővel (ami lényegében a quirks módban van) korlátozza magát, az olvasókat és az oldalakat. Ha írnia kell az IE 6-ot vagy a 7-et, akkor használja a feltételes megjegyzéseket, hogy támogassa őket, ahelyett, hogy kényszerítené a modern böngészőket.
Miért használd a DOCTYPE programot?
Ha tudatában van ennek a DOCTYPE-típusváltásnak a bekövetkezésekor, akkor közvetlenül a DOCTYPE használatával érheti el weboldalainak hatását, ami azt jelzi, hogy a böngésző elvárhatja az oldalától. Továbbá, ha elkezdi használni a DOCTYPE-et, akkor olyan HTML-t írsz, amely közelebb van ahhoz, hogy érvényes legyen (még mindig érvényesítened kell). És az érvényes XHTML használatával ösztönözheti a böngészők számára, hogy szabványos böngészőket készítsenek.
Böngésző verziók és Quirks mód
DOCTYPE | Android Króm Firefox IE 8+ iOS Opera 7.5+ Szafari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Egyik sem | Quirks mód | Quirks mód | Quirks mód |
HTML 3.2 | |||
Quirks mód | Quirks mód | Quirks mód | |
HTML 4.01 | |||
Átmeneti | Szabvány mód * | Szabvány mód * | Szabvány mód |
Átmeneti | Quirks mód | Quirks mód | Quirks mód |
Szigorú | Szabvány mód | Szabvány mód * | Szabvány mód |
Szigorú | Szabvány mód | Szabvány mód * | Szabvány mód |
HTML5 | |||
Szabvány mód | Szabvány mód * | Quirks mód | |
* Ezzel a DOCTYPE-vel a böngészők közel állnak a szabványokhoz, de van néhány probléma - győződjön meg róla, hogy tesztel. Ez a "szinte szabványos mód" néven is ismert. |