Kite soti Doctype a mete navigateur nan Mode Quirks
Si ou te desine paj wèb pou plis pase yon kèk mwa, ou gen plis chans okouran de difikilte pou ekri yon paj ki sanble menm bagay la tou nan tout navigatè . Nan pwen de reyalite, sa a enposib. Navigatè Anpil yo te ekri ak karakteristik espesyal ke yo sèlman yo te ka okipe. Oswa yo gen fason espesyal nan manyen bagay ki diferan de ki jan navigatè lòt okipe yo. Pa egzanp:
- Kouch yo te kreye pou itilize nan navigatè Netscape. Yo pa travay nan nenpòt lòt navigatè, e an reyalite yo te deprecated nan Netscape 6.x +.
- Inline ankadreman te orijinal kreye pou Internet Explorer sèlman, epi yo gen depi vin yon pati nan spesifikasyon nan HTML.
- Internet Explorer 6.0 ajoute yon espas anplis (tankou yon
) ki antoure baj, sof si ou ekri sa ki nan div la tout sou yon sèl (long) liy. (IE 6 gen anpil plis koup kòm byen ke yon sèl sa a.) - Netscpe 4.7 pa pral montre tab ki pa ekri nan kòrèk HTML - li montre yon paj vid pito. Sa a te fiks nan Netscape 6.
Pwoblèm lan pou devlopè navigatè se ke yo gen yo kreye navigatè entènèt ki fè bak konpatib ak paj wèb bati pou pi gran navigatè. Nan lòd fè fas ak pwoblèm sa a, mizisyen navigatè kreye mòd pou navigatè yo nan opere pous Mòd sa yo yo defini nan prezans la oswa absans nan yon eleman DOCTYPE ak sa ki DOCTYPE apèl.
DOCTYPE oblije chanje ak "Mode Quirks"
Si ou mete DOCTYPE sa yo nan paj entènèt ou an:
Navigatè modèn (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) ta entèprete sa a nan mòd sa a:
- Paske gen yon DOCTYPE ki kòrèkteman ekri, sa a deklannche mòd estanda.
- Li se yon dokiman Tranzisyon HTML 4.01
- Paske li nan mòd estanda, pi navigatè pral rann kontni an konfòme (oswa sitou konfòme) ak HTML 4.01 Tranzisyonèl
Men, si ou mete DOCTYPE sa a nan dokiman ou:
Sa a di navigatè modèn ke ou vle montre HTML ou 4.01 paj nan konfòmite strik ak DTD la.
Navigatè sa yo pral antre nan "strik" oswa "estanda" mòd ak rann paj la an konfòmite avèk estanda yo. (Se konsa, pou dokiman sa a, Tags tankou ka konplètman inyore pa navigatè a, kòm eleman an FONT ki te deprecated nan HTML 4.01 Strict.)
Si ou kite DOCTYPE a soti konplètman, navigatè yo ap otomatikman kouri dèyè nan mòd "karyè".
Tablo ki anba a montre sa navigatè komen yo fè lè yo prezante ak diferan deklarasyon DOCTYPE komen yo.
Microsoft fè li pi difisil
Internet Explorer 6 tou te gen karakteristik la ke si ou mete anyen nan tout pi wo a deklarasyon an DOCTYPE yo, yo pral antre nan mòd karyè. Se konsa, tou de nan egzanp sa yo pral mete IE 6 nan mòd Quirks, menm si deklarasyon yo DOCTYPE di yo dwe nan mòd estanda strik:
ak XHTML 1.1 DOKTYPE:
Plus, si ou jwenn sot pase IE6, Lè sa a, ou gen "karakteristik nan" ki Microsoft te ajoute nan IE8 ak IE9: META eleman oblije chanje ak sit entènèt lis nwa. An reyalite, de vèsyon sa yo navigatè kounye a gen jiska sèt (!) Diferan mòd:
- IE 5.5 karyè mòd (IE 8 ak 9)
- IE 7 estanda mòd (IE 8 ak 9)
- IE 8 prèske estanda mòd (IE 8 ak 9)
- IE 8 estanda mòd (IE 8 ak 9)
- IE 9 prèske estanda mòd (IE 9)
- IE 9 estanda mòd (IE 9)
- XML mòd (IE 9)
IE 8 tou entwodwi "Konpatibilite Mode" kote itilizatè a te kapab chwazi chanje modèl la rann tounen nan IE 7 mòd. Se konsa, menm si ou mete mòd nan ou vle mete lè l sèvi avèk tou de eleman yo DOCTYPE ak META, te ka paj ou toujou ap pouse tounen nan yon mòd mwens estanda-konfòme.
Ki sa ki se Mode Quirks?
Quirks mòd te kreye pou ede fè fas ak tout rendu etranj ak ki pa konfòme sipò navigatè ak antay ki konsèpteur entènèt yo te lè l sèvi avèk fè fas ak bagay sa yo. Enkyetid ke manifaktirè navigatè yo te ke si yo chanje navigatè yo sou plen konfòmite spesifikasyon, konsèpteur entènèt ta dwe kite dèyè.
Pa mete kanpe switch DOCTYPE ak "Quirks Mode" sa a konsèpteur entènèt pèmèt yo chwazi ki jan yo te vle navigatè rann HTML yo.
Quirks Mode Efè
Gen plizyè efè ke pi navigatè itilize nan Mode Quirks:
- Nan kèk navigatè, modèl la bwat chanje nan vèsyon an 5.5 vèsyon nan modèl la bwat nan mòd karyè.
- Gen kèk navigatè pa eritye Styles an tab
- Quirks mòd afekte analiz CSS ak CSS layout dramatikman, si w ap konvèti paj nan estanda mòd soti nan mòd kir, asire w ke ou teste Layout CSS ou ak analize anpil.
- Gade pou chanjman nan scripting lè nan mòd konjesyon serebral. Firefox chanje fason idantite a id travay, pou egzanp. IE8 ak IE9 gen chanjman trè dramatik scripting nan mòd Quirks.
Genyen tou yon diferans nan "Almost Standards Mode:"
- Wotè selil tab yo ak imaj sèlman andedan yo kalkile yon fason diferan de estanda mòd.
Ki jan yo chwazi yon DOCTYPE
Mwen ale nan plis detay nan atik DOCTYPE lis mwen, men isit la yo se kèk règleman jeneral nan gwo pous:
- Toujou chwazi estanda mòd premye. Ak estanda aktyèl la ou ta dwe itilize se HTML5: Sof si ou gen yon rezon espesifik pou fè pou evite itilize HTML5 DOCTYPE a, sa a se sa ou ta dwe itilize.
- Ale nan strik HTML 4.01 si ou bezwen valide eleman eritaj oswa ou vle pou fè pou evite karakteristik nouvo pou kèk rezon:
- Si ou gen tranche imaj nan yon tab epi ou pa vle ranje yo, ale nan Tranzisyonèl HTML 4.01:
- Pa ekri paj fè espre nan mòd konjesyon serebral. Toujou itilize yon DOCTYPE. Sa a pral sove ou sou tan devlopman nan tan kap vini an, ak reyèlman pa gen okenn benefis. IE6 se rapidman pèdi popilarite ak pa desine pou navigatè sa a (ki se esansyèlman ki desine nan mòd konjesyon serebral se) ou limite tèt ou, lektè ou yo, ak paj ou yo. Si ou dwe ekri pou IE 6 oswa 7, Lè sa a, sèvi ak kondisyon kondisyonèl sipòte yo, olye ke fòse navigatè modèn nan mòd konjesyon serebral.
Poukisa itilize DOCTYPE
Yon fwa w ap okouran de sa a ki kalite DOCTYPE oblije chanje, ou ka afekte paj entènèt ou an plis dirèkteman lè l sèvi avèk yon DOCTYPE ki endike sa navigatè a ka atann nan paj ou a. Epitou, yon fwa ou kòmanse lè l sèvi avèk DOCTYPE, ou pral ekri HTML ki pi pre yo te valab (ou ta dwe toujou valide li). Ak pa ekri valab XHTML, ou ankouraje mizisyen navigatè yo bati estanda navigatè konfòme.
Vèsyon navigatè ak Mode Quirks
DOKTYPE | Android Chrome Firefox IE 8+ iOS Opera 7.5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Okenn | Kapris Mode | Kapris Mode | Kapris Mode |
HTML 3.2 | |||
Kapris Mode | Kapris Mode | Kapris Mode | |
HTML 4.01 | |||
Tranzisyonèl | Nòmal Mode * | Nòmal Mode * | Nòmal Mode |
Tranzisyonèl | Kapris Mode | Kapris Mode | Kapris Mode |
Strik | Nòmal Mode | Nòmal Mode * | Nòmal Mode |
Strik | Nòmal Mode | Nòmal Mode * | Nòmal Mode |
HTML5 | |||
Nòmal Mode | Nòmal Mode * | Kapris Mode | |
* Avèk sa a DOCTYPE, navigatè yo fèmen nan estanda konfòme, men gen kèk pwoblèm-asire w ke ou teste. Sa a se ke yo rele tou "Mode Almost Standards." |