Ostavite Doctype da stavite preglednike u način rada Quirks
Ako ste projektirali web stranice više od nekoliko mjeseci, najvjerojatnije ste svjesni poteškoća u pisanju stranice koja izgleda isto u svim preglednicima . Zapravo, to je nemoguće. Mnogi su preglednici napisani s posebnim značajkama koje samo oni mogu podnijeti. Ili imaju posebne načine rukovanja stvari koje se razlikuju od toga kako ih drugi preglednici obrađuju. Na primjer:
- Slojevi su stvoreni za upotrebu u Netscape preglednicima. Oni ne rade u nekom drugom pregledniku, a zapravo su zastarjeli u Netscape 6.x +.
- Inline okviri su izvorno izrađeni samo za Internet Explorer i od tada su postali dio HTML specifikacije.
- Internet Explorer 6.0 dodaje dodatni prostor (kao što je
), osim ako ne upisujete sadržaj diva na jednu (dugačku) liniju. (IE 6 ima mnogo više zabluda, kao i ovaj.) - Netscpe 4.7 neće prikazivati tablice koje nisu napisane u ispravnom HTML-u - umjesto toga prikazuje praznu stranicu. To je bilo fiksno u Netscapeu 6.
Problem za razvojne programere preglednika je da moraju stvoriti web preglednike koji su kompatibilni s web stranicama izgrađenim za starije preglednike. Da bismo riješili taj problem, proizvođači preglednika stvorili su načine rada preglednika. Ovi načini određuju prisutnost ili nedostatak elementa DOCTYPE i ono što DOCTYPE poziva.
Prebacivanje DOCTYPE i "Quirks Mode"
Ako stavite sljedeće DOCTYPE na svoju web stranicu:
Moderni preglednici (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) interpretirat će to na sljedeći način:
- Budući da postoji ispravno napisana DOCTYPE, to pokreće način rada standarda.
- To je HTML 4.01 Prijelazni dokument
- Budući da je u standardnom načinu rada, većina preglednika će sadržaj uskladiti (ili uglavnom uskladiti) sa HTML 4.01 Prijelaznim
A ako stavite ovu DOCTYPE u svoj dokument:
Ovo govori modernim preglednicima da želite prikazati HTML 4.01 stranicu u skladu s DTD-om.
Ovi preglednici idu u "strog" ili "standardni" način i prikazuju stranicu u skladu sa standardima. (Dakle, za ovaj dokument, preglednik je potpuno ignorirao oznake poput FONT elementa u HTML 4.01 Strictu.)
Ako potpuno napustite DOCTYPE, preglednici se automatski prebacuju u način "quirks".
Tablica u nastavku pokazuje ono što uobičajeni preglednici rade kada se prikazuju različitim uobičajenim DOCTYPE deklaracijama.
Microsoft ga čini teže
Internet Explorer 6 također ima značajku da ako stavite bilo što na sve iznad deklaracije DOCTYPE, oni će ići u quirks način. Dakle, oba ova primjera će staviti IE 6 u quirks način, iako DOCTYPE deklaracije kažu da se u strogom standardnom načinu rada:
i XHTML 1.1 DOCTYPE:
Osim toga, ako dobijete IE6, onda imate "značajku" koju je Microsoft dodao u IE8 i IE9: META element prebacivanja i web stranice na crnoj listi. Zapravo, ove dvije verzije preglednika sada imaju do sedam (!) Različitih načina:
- IE 5.5 quirks način (IE 8 i 9)
- IE 7 standardni mod (IE 8 i 9)
- IE 8 gotovo standardni način (IE 8 i 9)
- IE 8 standardni mod (IE 8 i 9)
- IE 9 gotovo standardni način (IE 9)
- IE 9 standardni mod (IE 9)
- XML način (IE 9)
IE 8 je također uveo "Modus kompatibilnosti" gdje korisnik može odabrati da se model render vraća u IE 7 mod. Tako da čak i ako postavite način koji želite postaviti pomoću DOCTYPE i META elemenata, vaša se stranica i dalje može gurnuti natrag u način manje usklađen s standardima.
Što je Quirks Mode?
Quirks način rada stvoren je kako bi se pomoglo u rješavanju svih neobičnih prikazivanja i nepridržavanja podrške preglednika i hakiranja koje su web dizajneri koristili za rješavanje tih stvari. Zabrinutost koju su proizvođači preglednika imali jest da, ako prebaci preglednike na potpunu sukladnost specifikacije, web dizajneri bi ostali iza sebe.
Postavljanjem DOCTYPE prebacivanja i "Quirks Mode" to dopušteno web dizajneri odabrati kako su htjeli preglednike za prikazivanje njihov HTML.
Efekti na način rada Quirks
Postoji nekoliko učinaka koje većina preglednika koristi u Quirks načinu rada:
- U nekim preglednicima model kutija promijenit će se u IE 5.5 verziju modela kutija u quirks modu.
- Neki preglednici ne nasljeđuju stilove u tablice
- Metoda Quirks utječe dramatično na analizu CSS i CSS izgleda, ako pretvorite stranice u standardni način rada iz moda quirksa, obavezno testirate svoje CSS izgled i raščlanjivanje opsežno.
- Gledajte promjene u skriptiranju kada ste u načinu quirks. Na primjer, Firefox mijenja način funkcioniranja atributa id. IE8 i IE9 imaju vrlo dramatične promjene u skriptiranju u quirks modu.
Postoji i razlika u "gotovo standardnom načinu rada":
- Visina ćelija stolova sa samo unutarnjim slikama izračunava se drugačije od standardnog načina rada.
Kako odabrati DOCTYPE
Idem u više detalja u svom članku DOCTYPE List, ali evo nekoliko općih pravila:
- Prvo odaberite način standarda. A trenutni standard koji biste trebali upotrebljavati je HTML5: Ako nemate određeni razlog za izbjegavanje upotrebe HTML5 DOCTYPE, to biste trebali upotrebljavati.
- Idite na strog HTML 4.01 ako trebate potvrditi naslijeđene elemente ili iz nekog razloga želite izbjeći nove značajke:
- Ako ste slikali slike u tablici i ne želite ih ispraviti, idite na Prijelazni HTML 4.01:
- Nemojte pisati stranice namjerno u quirks modu. Uvijek koristite DOCTYPE. To će vam u budućnosti spasiti vrijeme razvoja i stvarno nema koristi. IE6 brzo gubi popularnost i dizajniranjem za ovaj preglednik (što je u suštini ono što dizajniranje u quirks modu je) ograničavate sebe, svoje čitatelje i vaše stranice. Ako morate pisati za IE 6 ili 7, upotrijebite uvjetne komentare da biste ih podržali, a ne prisiljavate moderne preglednike na način rada.
Zašto koristiti DOCTYPE
Kada budete svjesni ove vrste prebacivanja DOCTYPE, možete izravnije utjecati na web stranice pomoću DOCTYPE koji označava što preglednik može očekivati od vaše stranice. Također, nakon što počnete upotrebljavati DOCTYPE, pisat ćete HTML koji je bliži valjanosti (trebali biste ga još potvrditi). I pisanjem valjanog XHTML-a, potičete kreatore preglednika da izgrade preglednike koji zadovoljavaju standarde.
Verzije preglednika i način rada s upitima
DOCTYPE | Android Krom Firefox IE 8+ iOS Opera 7.5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
nijedan | Quirks način rada | Quirks način rada | Quirks način rada |
HTML 3.2 | |||
Quirks način rada | Quirks način rada | Quirks način rada | |
HTML 4.01 | |||
prijelazan | Način standarda * | Način standarda * | Način rada standarda |
prijelazan | Quirks način rada | Quirks način rada | Quirks način rada |
Strog | Način rada standarda | Način standarda * | Način rada standarda |
Strog | Način rada standarda | Način standarda * | Način rada standarda |
HTML5 | |||
Način rada standarda | Način standarda * | Quirks način rada | |
* Ovim DOCTYPE preglednici su bliski standardima, ali imaju neka pitanja - svakako provjerite. To je također poznat kao "gotovo standardni način rada". |