Gebruik die DOCTYPE Element in Quirks af

Los die Doctype uit om Browsers in Quirks af te stel

As jy meer as 'n paar maande webbladsye ontwerp, is jy waarskynlik bewus van die probleem om 'n bladsy wat in alle blaaiers dieselfde lyk, te skryf. In werklikheid is dit onmoontlik. Baie blaaiers is geskryf met spesiale eienskappe wat hulle net kon hanteer. Of hulle het spesiale maniere om dinge te hanteer wat verskil van hoe ander blaaiers hulle hanteer. Byvoorbeeld:

Die probleem vir webblaaierontwikkelaars is dat hulle webblaaiers moet maak wat agteruit verenigbaar is met webblaaie wat vir ouer blaaiers gebou is. Om hierdie probleem te hanteer, het blaaiermakers modi geskep vir die blaaiers om in te werk. Hierdie modusse word gedefinieer deur die teenwoordigheid of afwesigheid van 'n DOCTYPE-element en wat dit DOCTYPE skakel.

DOCTYPE Switching en "Quirks Mode"

As jy die volgende DOCTYPE in jou webblad plaas:

Moderne blaaiers (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) sal dit op die volgende manier interpreteer:

  1. Aangesien daar 'n korrek geskrewe DOCTYPE is, word dit standaardmodus aangepak.
  2. Dit is 'n HTML 4.01 Oorgangsdokument
  3. Omdat dit in die standaardmodus is, sal die meeste blaaiers die inhoud voldoen (of meestal voldoen) met HTML 4.01 Transitional

En as jy hierdie DOCTYPE in jou dokument plaas:

Dit vertel moderne blaaiers wat jy jou HTML 4.01-bladsy wil vertoon, in ooreenstemming met die DTD.

Hierdie blaaiers gaan in "streng" of "standaard" af en maak die bladsy in ooreenstemming met die standaarde. (Dus, vir hierdie dokument, kan etikette soos dalk heeltemal geïgnoreer word deur die blaaier, aangesien die FONT-element in HTML 4.01 Strict verouderd is.)

As jy die DOCTYPE volledig verlaat, word die blaaiers outomaties in die "quirks" -modus geskop.

Die tabel hieronder toon wat die algemene blaaiers doen wanneer hulle met verskillende algemene DOCTYPE-verklarings aangebied word.

Microsoft maak dit harder

Internet Explorer 6 het ook die kenmerk dat as jy iets bo die DOCTYPE-verklaring plaas, sal hulle in die modus quirks gaan. Dus, albei van hierdie voorbeelde sal IE 6 in quirks-modus plaas, alhoewel die DOCTYPE-verklarings sê dat dit in streng standaarde is:

en die XHTML 1.1 DOCTYPE:

Plus, as jy verby IE6, dan het jy die "funksie" wat Microsoft bygevoeg het in IE8 en IE9: META element skakel en webwerf swartlys. Trouens, hierdie twee blaaier weergawes het nou tot sewe (!) Verskillende modusse:

IE 8 het ook "Compatibility Mode" ingestel waar die gebruiker kon kies om die renderingmodel terug te verander na die IE 7-modus. Sodat selfs as jy die modus wat jy wil stel met behulp van beide die DOCTYPE- en META-elemente, stel, kan jou bladsy weer in 'n minder standaard-modus afgestoot word.

Wat is Quirks Mode?

Quirks-modus is geskep om te help met die hantering van al die vreemde weergawes en nie-voldoenende blaaiersteun en hacks wat webontwerpers gebruik om daardie dinge te hanteer. Die besorgdheid wat blaaiervervaardigers gehad het, was dat as hulle hul blaaiers oorgeskakel het na volledige spesifikasie nakoming, webontwerpers agtergelaat sou word.

Deur die opstel van DOCTYPE skakel en Quirks Mode het dit die webontwerpers toegelaat om te kies hoe hulle wou hê dat blaaiers hul HTML moet lewer.

Quirks modus effekte

Daar is verskeie effekte wat die meeste blaaiers gebruik in Quirks Mode:

Daar is ook 'n verskil in "Byna Standaarmodus:"

Hoe om 'n DOCTYPE te kies

Ek gaan meer in detail in my artikel DOCTYPE List, maar hier is 'n paar algemene reëls:

  1. Kies altyd die standaardmodus eers. En die huidige standaard wat jy moet gebruik is HTML5:
    Tensy u 'n spesifieke rede het om die HTML5 DOCTYPE te vermy, moet u dit gebruik.
  2. Gaan na streng HTML 4.01 as jy ouer elemente moet validiseer of om nuwe funksies om een ​​of ander rede te vermy:
  3. As jy gesnyde beelde in 'n tabel het en nie wil regmaak nie, gaan na Transitional HTML 4.01:
  4. Moenie bladsye doelbewus in quirks af skryf nie. Gebruik altyd 'n DOCTYPE. Dit sal jou spaar op ontwikkelingstyd in die toekoms en het werklik geen voordeel nie. IE6 verloor vinnig gewildheid en deur die ontwerp van hierdie blaaier (wat eintlik is wat ontwerp in die quirks-modus is) beperk jy jouself, jou lesers en jou bladsye. As jy vir IE 6 of 7 moet skryf, gebruik dan voorwaardelike opmerkings om hulle te ondersteun, eerder as om moderne blaaiers in quirks af te dwing.

Hoekom gebruik DOCTYPE

Sodra jy bewus is van hierdie tipe DOCTYPE-skakelwerk, kan jy jou webbladsye meer direk beïnvloed deur 'n DOCTYPE te gebruik wat aandui wat die blaaier van jou bladsy kan verwag. Sodra jy DOCTYPE begin gebruik, skryf jy HTML wat nader aan geldig is (jy moet dit nog steeds validiseer). En deur 'n geldige XHTML te skryf, moedig jy blaaiermakers aan om standaarde-ondersteunende blaaiers te bou.

Browser weergawes en quirks af

DOCTYPE Android
Chroom
Firefox
IE 8+
iOS
Opera 7.5 +
safari
IE 6
IE 7
Opera 7
Netscape 6
Geen Quirks af Quirks af Quirks af
HTML 3.2
Quirks af Quirks af Quirks af
HTML 4.01
oorgang Standaarde af * Standaarde af * Standaarmodus
oorgang Quirks af Quirks af Quirks af
streng Standaarmodus Standaarde af * Standaarmodus
streng Standaarmodus Standaarde af * Standaarmodus
HTML5
Standaarmodus Standaarde af * Quirks af
* Met hierdie DOCTYPE, blaaiers is naby aan standaarde voldoen, maar het 'n paar probleme. Maak seker dat jy dit toets. Dit staan ​​ook bekend as "Byna Standaarde Modus."