Ostavite Doctype za postavljanje pretraživača u režim Quirksa
Ako ste dizajnirali web stranice više od nekoliko meseci, najverovatnije ste svesni problema u pisanju stranice koja izgleda isto u svim pregledačima . U stvari, to je nemoguće. Mnogi pretraživači su napisani sa posebnim karakteristikama koje su jedino mogli da rade. Ili imaju posebne načine rukovanja stvarima koje se razlikuju od načina na koji drugi pregledači postupaju sa njima. Na primjer:
- Slojevi su kreirani za upotrebu u Netscape pretraživačima. Oni ne rade u bilo kom drugom pregledaču, a zapravo su zastarjeli u Netscape 6.x +.
- Inline okviri su originalno kreirani samo za Internet Explorer i od tada postaju deo HTML specifikacije.
- Internet Explorer 6.0 dodaje dodatni prostor (kao npr
) oznake koje okružuju, osim ako ne unosite sadržaj div-a na jednu (dugu) liniju. (IE 6 ima mnogo više pitanja kao i ovaj). - Netscpe 4.7 neće prikazati tablice koje nisu napisane u ispravnom HTML-u - umjesto toga prikazuje praznu stranicu. Ovo je popravljeno u Netscape-u 6.
Problem za programera pretraživača je da moraju kreirati web pretraživače koji su kompatibilni sa web stranicama napravljenim za starije pregledače. Da bi se riješilo ovo pitanje, proizvođači pretraživača su kreirali modove za rad browsera. Ovi režimi su definisani prisustvom ili odsustvom elementa DOCTYPE i koji DOCTYPE pozivi.
Prebacivanje DOCTYPE i "Quirks Mode"
Ako stavite sledeću DOCTYPE na vašu web stranicu:
Savremeni preglednici (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) bi to tumačili na sledeći način:
- Pošto postoji ispravno napisana DOCTYPE, ovo pokreće standardni režim.
- To je HTML 4.01 Prelazni dokument
- Pošto je u režimu standarda, većina pregledača će učiniti sadržaj usklađen (ili najviše usklađen) sa HTML 4.01 Transitional
I ako stavite ovaj DOCTYPE u svoj dokument:
Ovo govori savremenim pretraživačima da želite prikazati svoju HTML 4.01 stranicu u strogoj saglasnosti sa DTD-om.
Ovi pretraživači prelaze u "strogi" ili "standardni" mod i prikazuju stranicu u skladu sa standardima. (Dakle, za ovaj dokument, oznake kao što bi moglo biti potpuno ignorisano od strane pregledača, pošto je element FONT zastario u HTML 4.01 Strict.)
Ako potpuno napustite DOCTYPE, pretraživači se automatski prebacuju u režim "quirks".
U donjoj tabeli je prikazano šta zajednički preglednici rade kada su predstavljeni različitim DOCTYPE deklaracijama.
Microsoft to teže
Internet Explorer 6 takođe ima mogućnost da ako stavite bilo šta iznad deklaracije DOCTYPE, oni će ići u režim quirksa. Dakle, oba ova primera će staviti IE 6 u režim quirks, iako deklaracije DOCTYPE-a kažu da su u striktnim standardima:
i XHTML 1.1 DOCTYPE:
Pored toga, ako prođete pored IE6-a, onda imate "osobinu" koju je Microsoft dodao u IE8 i IE9: prebacivanje elementa META i umnožavanje web stranice. U stvari, ove dve verzije pretraživača sada imaju do sedam (!) Različitih režima:
- IE 5.5 režim (IE 8 i 9)
- IE 7 standardni mod (IE 8 i 9)
- IE 8 skoro standardni mod (IE 8 i 9)
- Režim IE 8 standarda (IE 8 i 9)
- IE 9 skoro standardni mod (IE 9)
- IE 9 standardni mod (IE 9)
- Režim XML (IE 9)
IE 8 je takođe predstavio "Režim kompatibilnosti" u kojem korisnik može izabrati da promeni model renderiranja na IE 7 mod. Dakle, čak i ako postavite režim koji želite da podesite pomoću DOCTYPE i META elemenata, vaša stranica se i dalje može vratiti u režim koji odgovara standardima.
Šta je Quirks Mode?
Quirks mod je kreiran da pomogne u rješavanju svih čudnih renderinga i neusaglašenih podrške pretraživača i hacksa koje su web dizajneri koristili za rješavanje tih stvari. Zabrinutost proizvođača pretraživača bila je da bi, ako bi prešli svoje pretraživače na potpunu saglasnost sa specifikacijama, web dizajneri bili ostavljeni iza sebe.
Postavljanjem DOCTYPE prekidanja i "Quirks Mode" omogućili su web dizajnerima da izaberu kako žele da pregledači naprave svoj HTML.
Efekti režima Quirks
Postoji nekoliko efekata koje većina pretraživača koristi u režimu Quirks:
- U nekim pregledačima, model box-a se menja u IE 5.5 verziju modela box-a u režimu quirks-a.
- Neki pregledači ne nasleđuju stilove u tabele
- Režim Quirks-a utiče na razlaganje CSS i CSS rasporeda dramatično, ako pretvarate strane u standardni mod iz režima quirksa, obavezno testirajte svoj CSS raspored i detaljno analiziranje.
- Pratite promjene u skripti kada ste u režimu quirks-a. Firefox menja način na koji atribut id funkcionira, na primjer. IE8 i IE9 imaju veoma dramatične promjene u skripti u režimu quirksa.
Postoji i razlika u "Režimu skoro standarda:"
- Visina ćelija tabele sa samo slikama iznad se izračunava drugačije od standardnog režima.
Kako odabrati DOCTYPE
Idem u detaljnije u svojoj članak DOCTYPE List, ali evo nekih opštih pravila:
- Uvijek odabrati način standarda. A trenutni standard koji trebate koristiti je HTML5: Osim ako nemate određeni razlog da izbegnete korišćenje HTML5 DOCTYPE-a, to je ono što treba da koristite.
- Idite na striktan HTML 4.01 ako želite da potvrdite stare elemente ili želite izbjeći nove funkcije iz nekog razloga:
- Ako ste rezali slike u stolu i ne želite da ih ispravite, idite na Transitional HTML 4.01:
- Nemojte pisati stranice namerno u režimu quirksa. Uvek koristite DOCTYPE. Ovo će vam uštedjeti u vremenu razvoja u budućnosti i stvarno nema koristi. IE6 brzo gubi popularnost i dizajniranjem za ovaj pretraživač (što je u suštini ono što je dizajniranje u režimu quirks-a) ograničavate sebe, svoje čitaoce i vaše stranice. Ako morate da pišete za IE 6 ili 7, onda koristite uslovne komentare da ih podržite, umesto da primate moderne pregledače u režim quirksa.
Zašto koristiti DOCTYPE
Kada budete svesni ovakvog prelaska DOCTYPE-a, možete više direktno uticati na vaše web stranice koristeći DOCTYPE koji pokazuje šta pretraživač može očekivati na vašoj stranici. Takođe, kada počnete da koristite DOCTYPE, pisacete HTML koji je bliži valjanosti (i dalje ga morate potvrditi). I upisivanjem važećeg XHTML-a, vi ohrabrujete proizvođače pretraživača da kreiraju standardne pretraživače.
Verzije pretraživača i Quirks režim
DOCTYPE | Android Chrome Firefox IE 8+ iOS Opera 7.5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Ništa | Quirks Mode | Quirks Mode | Quirks Mode |
HTML 3.2 | |||
Quirks Mode | Quirks Mode | Quirks Mode | |
HTML 4.01 | |||
Transitional | Režim standarda * | Režim standarda * | Režim standarda |
Transitional | Quirks Mode | Quirks Mode | Quirks Mode |
Strogo | Režim standarda | Režim standarda * | Režim standarda |
Strogo | Režim standarda | Režim standarda * | Režim standarda |
HTML5 | |||
Režim standarda | Režim standarda * | Quirks Mode | |
* Sa ovim DOCTYPE-om, pretraživači su blizu standarda koji su usklađeni, ali imaju neke probleme - obavezno testirajte. Ovo je poznato i kao "Režim skoro standarda". |