Gean de Doctype út om browsers yn 'e quirkmodus te bringen
As jo websteeën meardere as in pear moanne ûntwikkele hawwe, binne jo wierskynlik bewust fan 'e swierrichheid by it skriuwen fan in side dy't itselde yn alle browsers is . Yn it algemien is dat net mooglik. In soad browsers waarden skreaun mei spesjale funksjes dy't allinich te krijen hawwe. Of se hawwe spesjale manieren om dingen te hanneljen dy't oars binne as hoe oare browsers har behannelje. Bygelyks:
- Lagen binne makke foar gebrûk yn Netscape-browsers. Se wurkje net yn in oare browser, en feitlik binne ferwurde yn Netscape 6.x +.
- Inlineframes waarden oarspronklik makke foar Internet Explorer, en binne sûnt in diel fan 'e HTML-spesifikaasje wurden.
- Internet Explorer 6.0 addt in ekstra romte (lykas in
) omjouwende tags, útsein as jo de ynhâld fan de div alle op ien (lang) line skriuwe. (IE 6 hat in protte mear quirks en dizze ien.) - Netscpe 4.7 sil tabellen net sjen litte dy't net yn korrekte HTML skreaun binne - it besjocht in lege pagina ynstee. Dit is fêstlein yn Netscape 6.
It probleem foar blêderûntwikkelders is dat se webblêders meitsje moatte dy't rinnen kompatibel binne mei websiden dy't foar âldere browsers boud binne. Om dizze probleem te meitsjen, meitsje de browser makers modus foar de browsers om yn te operearjen. Dizze modus binne definiearre troch de oanwêzigens of ôfwêzigens fan in DOCTYPE-elemint en wat dat DOCTYPE opropt.
DOKTYPE-skeakeljen en "kirks modus"
As jo de folgjende DOCTYPE yn jo webside set:
Moderne browsers (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) jouwe dit yn 'e folgjende wize:
- Omdat der in korrekt skreaune DOCTYPE is, sjogge dit normasjemodus.
- It is in HTML 4.01 Tydlike dokumint
- Om't it yn 'e standertmodus is, sille de measte browsers de ynhâld kompatibel meitsje (of meast konform) mei HTML 4.01 Transitional
En as jo dit DOCTYPE yn jo dokumint pleatse:
Dit fertelt moderne browsers dy't jo HTML 4.01-side sjen wolle yn strikte konformiteit mei de DTD.
Dizze browsers sille yn "strik" of "normes" modus gean en de side yn 'e oarder hâlde mei de standerts. (Sa, foar dit dokumint, wurde tags lykwols folslein negeare troch de blêder, lykas it FONT-elemint is feroare yn HTML 4.01 Strict.)
As jo it DOCTYPE folslein útlitte, wurde de browsers automatysk yn 'e quirks' modus stjoerd.
De tabel hjirûnder lit sjen wat de mienskiplike browsers dwaan as se presinteare binne mei ferskate mienskiplike DOCTYPE-ferklearrings.
Microsoft makket it hurder
Internet Explorer 6 hat ek de funksje dat as jo njonken de DOCTYPE-ferklearring wat nijs sette, sille se yn 'e quirks modus gean. Dus, beide fan dizze foarbylden sille IE 6 yn quirks modus sette, alhoewol de deklaraasjes fan 'e DOCTYPE sizze yn strikte standert modus:
en de XHTML 1.1 DOKTYPE:
Plus, as jo IE6 foardwaan, hawwe jo de "funksje" dat Microsoft tafoegje yn IE8 en IE9: META elemint skeakeljen en webside blacklist. Yn 't feit hawwe dizze twa browserferzjes no oant sân (!) Ferskate modes:
- IE 5.5 quirks modus (IE 8 en 9)
- IE 7 standert modus (IE 8 en 9)
- IE 8 hast normale modus (IE 8 en 9)
- IE 8 standert modus (IE 8 en 9)
- IE 9 hast normale modus (IE 9)
- IE 9 standert modus (IE 9)
- XML-modus (IE 9)
IE 8 hat ek "Kompatibilitätsmodus" ynsteld wêr de brûker kin kieze om it renderingmodel werom te wizigjen nei IE7-modus. Dus dat jo sels de regy ynstelle wolle jo brûke wolle as beide DOCTYPE- en META-eleminten, kin jo side noch hyltyd werom sette yn in minder standert-konforme modus.
Wat is de kirks mode?
Query modus is ûntstien om te helpen om te gean mei alle merklike rendering en net-konforme browser-stipe en haken dy't web-websteeën brûke om te meitsjen mei dy dingen. It soargen dat browser-fabrikanten wie dat as se harren browsers oankwûnen nei folslein spesifisearring oerienkomst, wiene web-ûntwerpen efterlitten.
Mei it opsetten fan DOCTYPE-skeakeljen en "Quirks Mode" hat dizze websteeën socht te kiezen hoe't se browsers wiene om har HTML te meitsjen.
Eardere modus effekten
Der binne ferskate effekten dy't de measte browsers brûke yn Quirks Mode:
- Yn guon browsers feroaret it fakmodel oan 'e IE 5.5 ferzje fan it kastelmodel yn quirks modus.
- Guon browsers jilde gjin stilen yn tabels
- Keppeling modus hat ynfloed op it parsen fan CSS en CSS-ôfmjittig dramatysk, as jo de siden konvertearje nei standertmodus fan quirks modus, moatte jo wis binne jo CSS-ôfbylding te testen en útwreidzje.
- Sjoch foar wizigingen foar skripting as yn 'e quirks modus. Firefox feroaret de manier wêrop it id-attribút wurket, bygelyks. IE8 en IE9 hawwe tige dramatyske wizigingen foar skript yn 'e quirks modus.
Der binne ek in ferskil yn "Almost Standards Mode:"
- De hichte fan tafelsels mei allinich bylden yn binnen wurdt kompensearre oars fan 'e standaardmodus.
Hoe kinne jo in DOCTYPE kieze
Ik gean mear yn myn artikel DOCTYPE List, mar hjir binne guon algemiene regels fan thumb:
- Altyd de standaardmodus kieze earst. En it hjoeddeistige standert dat jo brûke moatte is HTML5: As jo gjin spesifike reden hawwe om te brûken fan it HTML5 DOCTYPE, dit is wat jo brûke moatte.
- Gean nei strikte HTML 4.01 as jo nedich binne ferwiderje âlde eleminten of wolle nije foto's foarkomme foar wat reden:
- As jo foto's yn sluten hawwe en wolle se net bepale, gean nei Transitional HTML 4.01:
- Skep de siden net bewust yn 'e quirks modus. Altyd in DOCTYPE brûke. Dit sil jo ûntwikkelje op 'e takomst, en hat echt gjin foardiel. IE6 fergruttet hurd populêrheid en troch dizze ûntwerp te ûntwikkeljen (wat yn essinsje is wat ûntwerpen yn 'e quirks modus is) jo beskiedje jo, jo lêzers en jo siden. As jo skriuwe moatte foar IE 6 of 7, brûk dan bedoelde reaksjes om se te stypjen, net mear as moderne browsers yn 'e quirks modus te fertsjinjen.
Wêrom brûke DOCTYPE
As jo bewust binne fan dit type fan DOCTYPE-skeakeljen, kinne jo jo websiden direkteur beynfloedzje troch in DOCTYPE te brûken, wat oanjout wat de browser fan jo side ferwachtsje kin. Ek as jo begjinne mei DOCTYPE, kinne jo HTML skriuwe dy't tichterby jildich is (jo moatte it noch bestillearje). En troch jo jildich XHTML te skriuwen, stimulearje jo browser makers om normaasjes konforme browsers te bouwen.
Browser Versions and Quirks Mode
DOKTYPE | Android Chrome Firefox IE 8+ iOS Opera 7.5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Gjin | Krystmodus | Krystmodus | Krystmodus |
HTML 3.2 | |||
Krystmodus | Krystmodus | Krystmodus | |
HTML 4.01 | |||
Tydlik | Standaardmodus * | Standaardmodus * | Standards Mode |
Tydlik | Krystmodus | Krystmodus | Krystmodus |
Strikt | Standards Mode | Standaardmodus * | Standards Mode |
Strikt | Standards Mode | Standaardmodus * | Standards Mode |
HTML5 | |||
Standards Mode | Standaardmodus * | Krystmodus | |
* Mei dit DOCTYPE binne browsers tichtby normale konformen, mar hawwe inkele problemen - feilich te hifkjen. Dit is ek bekend as "Almost Standards Mode". |