DOCTYPE-elementin käyttö Quirks-tilassa

Jätä Doctype -työkalun laittamaan selaimet Quirks-tilaan

Jos olet suunnitellut verkkosivuja yli muutaman kuukauden ajan, olet todennäköisesti tietoinen ongelmasta, kun kirjoitat sivun, joka näyttää samalta kaikissa selaimissa . Itse asiassa se on mahdotonta. Monet selaimet kirjoittivat erikoisominaisuuksilla, jotka vain he voisivat käsitellä. Tai heillä on erityisiä tapoja käsitellä asioita, jotka poikkeavat siitä, miten muut selaimet käsittelevät niitä. Esimerkiksi:

Selainkehittäjien ongelmana on, että heidän on luotava selaimia, jotka ovat taaksepäin yhteensopivia vanhemmille selaimille rakennettavien verkkosivujen kanssa. Tämän ongelman ratkaisemiseksi selaimen tekijät loivat toimintatilat, joiden avulla selaimet toimisivat. Nämä toimintatavat määräytyvät DOCTYPE-elementin läsnäolon tai poissaolon perusteella ja mitä DOCTYPE-puhelu vaatii.

DOCTYPE Vaihto ja "Quirks Mode"

Jos laitat Web-sivulle seuraavan DOCTYPE:

Nykyaikaiset selaimet (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) tulkitsisivat tämän seuraavasti:

  1. Koska DOCTYPE on oikein kirjoitettu, tämä käynnistää standarditilan.
  2. Se on HTML 4.01-siirtymäasiakirja
  3. Koska se on standarditilassa, useimmat selaimet tekevät sisällön yhteensopiviksi (tai enimmäkseen yhteensopiviksi) HTML 4.01: n kanssa.

Ja jos laitat tämän dokumentin DOCTYPE:

Tämä kertoo moderneille selaimille, että haluat näyttää HTML 4.01 -sivusi tiukasti DTD: n mukaisesti.

Nämä selaimet menevät "tiukkaan" tai "standardit" -tilaan ja tekevät sivun standardien mukaisiksi. (Joten tämän asiakirjan selaimen sivut voivat olla täysin sivuutettuja, koska FONT-elementti on hylätty HTML 4.01: n tarkasti.)

Jos jätät DOCTYPE: n kokonaan ulos, selaimet käynnistetään automaattisesti "quirks" -tilaan.

Alla oleva taulukko näyttää, mitä tavalliset selaimet tekevät, kun ne esitetään erilaisilla DOCTYPE-ilmoituksilla.

Microsoft tekee sen vaikeammaksi

Internet Explorer 6: ssä on myös ominaisuus, että jos laitat mitään aivan DOCTYPE-ilmoituksen yläpuolelle, ne menevät huijaustilaan. Joten molemmat näistä esimerkeistä tekevät IE 6: sta huijausta, vaikka DOCTYPE-ilmoitukset sanovat olevan tiukassa standarditilassa:

ja XHTML 1.1 DOCTYPE:

Lisäksi, jos saat ohi IE6: n, sinulla on "ominaisuus", jonka Microsoft lisäsi IE8: ssä ja IE9: ssa: META-elementtien vaihto ja verkkosivujen mustan listan. Itse asiassa näissä kahdessa selainversiossa on jopa seitsemän (!) Eri tilaa:

IE 8 esitteli myös "Yhteensopivuustila", jossa käyttäjä voi vaihtaa mallinnusmallin takaisin IE 7 -tilaan. Joten jos asetat tilan, jonka haluat asettaa sekä DOCTYPE- että META-elementteillä, sivusi voi silti olla työnnetty takaisin vähemmän standardien mukaiseen tilaan.

Mikä on Quirks-tila?

Quirks-tila luotiin auttaaksemme käsittelemään kaikkia outoja ja vastoinkäymätöntä selaintukea ja hakkereita, joita web-suunnittelijat käyttivät käsitelläkseen näitä asioita. Selaimen valmistajien huolenaihe oli, että jos he siirtäisivät selaimensa täydelliseen vaatimustenmukaisuuteen, web-suunnittelijat jäisivät jäljelle.

Asettamalla DOCTYPE-kytkentä ja "Quirks Mode" tämä sallittu web-suunnittelijat voivat valita, kuinka he halusivat selaimet tekemään HTML-koodinsa.

Päihittää tilan vaikutukset

Useita efektejä useimmissa selaimissa käyttää Quirks-tilassa:

Myös "lähes standarditila" on erilainen: "

Miten valita DOCTYPE

Siirry tarkemmin minun artikkelini DOCTYPE List, mutta tässä on joitain yleisiä sääntöjä peukalo:

  1. Valitse aina standarditila ensin. Ja nykyinen standardi, jota sinun pitäisi käyttää, on HTML5:
    Ellei sinulla ole erityistä syytä välttää HTML5 DOCTYPE käyttöä, sinun on käytettävä tätä.
  2. Mene tiukkaan HTML 4.01: een, jos haluat tunnistaa vanhoja elementtejä tai haluat välttää uusia ominaisuuksia jostain syystä:
  3. Jos olet liittänyt kuvia taulukkoon ja et halua korjata niitä, siirry siirtymäkauden HTML 4.01:
  4. Älä kirjoita sivuja tarkoituksellisesti quirks-tilassa. Käytä aina DOCTYPE: tä. Tämä säästää kehitysaikaa tulevaisuudessa, eikä sillä ole todellakaan mitään hyötyä. IE6 menettää nopeasti suosiotaan ja suunnittelet tätä selainta (joka on pohjimmiltaan mitä suunnittelet quirks-tilassa) rajoitat itseäsi, lukijoitasi ja sivuillesi. Jos sinun on kirjoitettava IE 6 tai 7: lle, käytä ehdollisia kommentteja tukemaan niitä, eikä pakota nykyaikaisia ​​selaimia hermostustilaan.

Miksi käyttää DOCTYPE

Kun olet tietoinen tämäntyyppisestä DOCTYPE-vaihtamisesta, voit vaikuttaa suoraan verkkosivuihin käyttämällä DOCTYPE-ohjelmaa, joka ilmaisee, mitä selaimella voi odottaa sivulta. Lisäksi, kun aloitat DOCTYPE: n käyttämisen, kirjoitat HTML-koodin, joka on lähempänä kelvollista (sinun kannattaa edelleen vahvistaa se). Kirjoittamalla voimassaoleva XHTML, kannustat selaimen tekijöitä rakentamaan standardien mukaisia ​​selaimia.

Selainversioita ja Quirks-tilaa

DOCTYPE Android
Kromi
Firefox
IE 8+
iOS
Opera 7.5+
Safari
IE 6
IE 7
Opera 7
Netscape 6
Ei mitään Quirks-tila Quirks-tila Quirks-tila
HTML 3.2
Quirks-tila Quirks-tila Quirks-tila
HTML 4.01
siirtymävaiheen Standarditila * Standarditila * Standarditila
siirtymävaiheen Quirks-tila Quirks-tila Quirks-tila
Tiukka Standarditila Standarditila * Standarditila
Tiukka Standarditila Standarditila * Standarditila
HTML5
Standarditila Standarditila * Quirks-tila
* Tällä DOCTYPE -selaimella selaimet ovat lähellä standardien mukaisia, mutta niillä on joitakin ongelmia - varmista testata. Tätä kutsutaan myös nimellä "lähes standarditila".