Sèvi ak Eleman DOCTYPE nan Mode Quirks

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:

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:

  1. Paske gen yon DOCTYPE ki kòrèkteman ekri, sa a deklannche mòd estanda.
  2. Li se yon dokiman Tranzisyon HTML 4.01
  3. 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 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:

Genyen tou yon diferans nan "Almost Standards Mode:"

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:

  1. 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.
  2. 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:
  3. Si ou gen tranche imaj nan yon tab epi ou pa vle ranje yo, ale nan Tranzisyonèl HTML 4.01:
  4. 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."