Išjunkite "Doctype", kad naršyklės įdėtų į "Quirks" režimą
Jei tinklapius sukūrėte daugiau nei keletą mėnesių, labiausiai tikėtina, kad sunku rašyti puslapį, kuris atrodo vienodai visose naršyklėse . Tiesą sakant, tai neįmanoma. Daugelis naršyklių buvo parašytos su specialiomis funkcijomis, kurias jie galėdavo tvarkyti. Arba jie turi specialių būdų tvarkyti dalykus, kurie skiriasi nuo to, kaip kiti naršyklės juos tvarko. Pavyzdžiui:
- Sluoksniai buvo sukurti naudoti Netscape naršyklėse. Jie neveikia jokioje kitoje naršyklėje, o iš tikrųjų jie buvo neaktyvūs "Netscape 6.x +".
- "Inline" rėmeliai iš pradžių buvo sukurti tik "Internet Explorer" ir nuo to laiko tapo HTML specifikacijos dalimi.
- Internet Explorer 6.0 prideda papildomą erdvę (pvz.,
) aplinkinių žymių, nebent jūs įrašysite visą divo turinį vienoje (ilgoje) eilutėje. (IE 6 turi daug daugiau panašumų nei šis.) - "Netscpe 4.7" nerodys lentelių, kurios nėra parašytos teisingu HTML formatu - vietoje to rodomas tuščias puslapis. Tai buvo nustatyta Netscape 6.
Problema, kurią kelia naršyklės kūrėjai, yra tai, kad jie turi sukurti naršykles, kurios yra atgaliniu būdu suderinamos su senesnių naršyklių sukurtais tinklalapiais. Norėdami išspręsti šią problemą, naršyklės kūrėjai sukūrė naršyklių veikimo būdus. Šie režimai apibrėžiami DOCTYPE elemento buvimu ar nebuvimu ir tai, ką tas DOCTYPE skamba.
DOCTYPE perjungimas ir "Quirks Mode"
Jei į savo tinklalapį įdėkite šį DOCTYPE:
Šiuolaikiškos naršyklės ("Android" 1+, "Chrome 1+", "IE 6+", "iOS 1+", "Firefox 1+", "Netscape 6+", "Opera 6+" ir "Safari 1+") šią sąvoką interpretuos taip:
- Kadangi yra teisingai parašytas DOCTYPE, tai sukelia standartų režimą.
- Tai HTML 4.01 pereinamasis dokumentas
- Kadangi tai standartų režimu, dauguma naršyklių bus suderintos su turiniu (ar dažniausiai atitinka) su HTML 4.01 pereinamuoju
Jei į dokumentą įtraukėte šį DOCTYPE:
Tai pasakoja šiuolaikines naršykles, kad norite rodyti savo HTML 4.01 puslapį, griežtai laikantis DTD.
Šios naršyklės pereis į "griežtus" arba "standartinius" režimus ir pateikia puslapį pagal standartus. (Taigi, šiame dokumente tokios žymos, kurias naršyklė gali visiškai nepaisyti, nes FONT elementas buvo nebeaktualus HTML 4.01 Strict.)
Jei visiškai išeisite iš DOCTYPE, naršyklės bus automatiškai išjungtos į "quirks" režimą.
Toliau pateiktoje lentelėje parodyta, ką dažniausiai atlieka naršyklės, kai pateikiamos skirtingos bendrosios DOCTYPE deklaracijos.
"Microsoft" daro tai sunkiau
"Internet Explorer 6" taip pat turi funkciją, kuri, jei jūs viską įdėtumėte aukščiau DOCTYPE deklaracijos, jie pateks į nepatogumų režimą. Taigi, abu šie pavyzdžiai pateiks IE 6 į priespaudų režimą, nors DOCTYPE pareiškimai sako, kad jie turi būti griežtai standartuose:
ir XHTML 1.1 DOCTYPE:
Be to, jei jūs gaunate ankstesnę versiją IE6, turite "funkciją", kurią "Microsoft" pridėjo IE8 ir IE9: " META" elementų perjungimas ir svetainių juodoji sąskaita. Iš tiesų šiose dviejų naršyklių versijose dabar yra ne daugiau kaip septyni (!) Skirtingi režimai:
- IE 5,5 prieto režimas (IE 8 ir 9)
- IE 7 standartų režimas (IE 8 ir 9)
- IE 8 beveik standartų režimas (IE 8 ir 9)
- IE 8 standartų režimas (IE 8 ir 9)
- IE 9 beveik standartų režimas (IE 9)
- IE 9 standartų režimas (IE 9)
- XML režimas (IE 9)
"IE 8" taip pat pristatė "suderinamumo režimą", kur vartotojas galėtų pasirinkti pakeisti vaizdavimo modelį atgal į IE 7 režimą. Taigi, net jei nustatysite režimą, kurį norite nustatyti naudodami DOCTYPE ir META elementus, jūsų puslapį vis tiek galima sugrąžinti į mažiau standartus atitinkantį režimą.
Kas yra Quirks režimas?
"Quirks" režimas sukurtas siekiant padėti susidoroti su visais keista renderavimo ir neatitinkančiomis naršyklės palaikymo funkcijomis, kuriomis naudojosi interneto dizaineriai, kad galėtumėte išspręsti šiuos dalykus. Susirūpinimas, kad naršyklės gamintojai turėjo tai, kad jei jie perjungtų savo naršykles iki visiško atitikimo specifikacijoms, interneto dizaineriai būtų palikti.
Nustatydami DOCTYPE perjungimą ir "Quirks Mode" tai leido interneto dizaineriams pasirinkti, kaip jie norėjo, kad naršyklės pateiktų savo HTML.
Quirks režimo efektai
Yra keletas efektų, kuriuos dauguma naršyklių naudoja "Quirks" režime:
- Kai kuriose naršyklėse paketų modelis keičia modelio "IE 5,5 versiją" modelio "quirks" režimu.
- Kai kurios naršyklės ne paveldi stilių į stalus
- Nepatogus režimas smarkiai įtakoja CSS ir CSS išdėstymo analizę, jei jūs konvertuojote puslapius į standartinį režimą iš "quirks" režimo, būtinai išbandykite savo CSS išdėstymą ir plačiai analizuodami.
- Žiūrėkite, kaip keisti scenarijus, kai kyla įprastų režimų. Pavyzdžiui, "Firefox" pakeičia ido atributo veikimą. IE8 ir IE9 yra labai dramatiški scenarijų pakeitimai, taikant "quirks" režimą.
Taip pat skiriasi "Beveik standartų režimas":
- Stalinių ląstelių aukštis su tik viduje esančiais vaizdais apskaičiuojamas skirtingai nei standartų režimas.
Kaip pasirinkti DOCTYPE
Mano straipsnyje DOCTYPE sąrašas einu išsamiau, bet čia yra keletas paprastų taisyklių:
- Visada pasirinkite standarto režimą. Ir dabartinis standartas, kurį turėtumėte naudoti, yra HTML5: Jei neturite konkrečios priežasties, kodėl HTML5 DOCTYPE nenaudosite, tai turėtumėte naudoti.
- Eikite į griežtą HTML 4.01, jei turite kokių nors priežasčių patvirtinti senus elementus arba norite išvengti naujų funkcijų:
- Jei lentelėje paversite paveikslėlius ir nenorite jų taisyti, eikite į Transitional HTML 4.01:
- Nenaudokite puslapių sąmoningai į nepatogumų režimą. Visada naudokite DOCTYPE. Tai sutaupys jūsų laiką kūrimo metu ateityje ir iš tiesų neturės jokios naudos. IE6 greitai praranda populiarumą ir suprojektuodamas šią naršyklę (kuri iš esmės yra tai, kas projektuojanti "quirks" režimu), jūs apribojote save, savo skaitytojus ir savo puslapius. Jei turite parašyti IE 6 ar 7, tada naudokite sąlygines pastabas, kad jas palaikytumėte, o ne priversti šiuolaikines naršykles prisijungti prie priespaudų režimo.
Kodėl verta naudotis DOCTYPE?
Kai jau žinote apie šio DOCTYPE tipo perjungimo tipą, galite tiesiogiai paveikti jūsų tinklalapius naudodami DOCTYPE, nurodantį, ką naršyklė gali tikėtis iš jūsų puslapio. Be to, kai pradėsite naudoti DOCTYPE, rašysite HTML, kuris yra arčiau galiojantis (vis tiek turėtumėte jį patvirtinti). Ir rašydami galiojantį XHTML, jūs skatinate naršyklių kūrėjus kurti standartus atitinkančias naršykles.
Naršyklės versijos ir "Quirks" režimas
DOCTYPE | "Android" "Chrome" "Firefox" IE 8 + "iOS" Opera 7.5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Nė vienas | Nepatinka režimas | Nepatinka režimas | Nepatinka režimas |
HTML 3.2 | |||
Nepatinka režimas | Nepatinka režimas | Nepatinka režimas | |
HTML 4.01 | |||
Pereinamojo laikotarpio | Standartų režimas * | Standartų režimas * | Standartų režimas |
Pereinamojo laikotarpio | Nepatinka režimas | Nepatinka režimas | Nepatinka režimas |
Griežtas | Standartų režimas | Standartų režimas * | Standartų režimas |
Griežtas | Standartų režimas | Standartų režimas * | Standartų režimas |
HTML5 | |||
Standartų režimas | Standartų režimas * | Nepatinka režimas | |
* Naudodamiesi šiuo DOCTYPE, naršyklės yra arti standartų, tačiau jos turi tam tikrų problemų - būtinai patikrinkite. Tai taip pat žinomas kaip "Beveik standartų režimas". |