Pustite Doctype, da brskalce prenese v Quirksov način
Če ste več kot nekaj mesecev oblikovali spletne strani, se boste najbolj zavedali težav pri pisanju strani, ki je videti enako v vseh brskalnikih . Dejansko to ni mogoče. Veliko brskalnikov je bilo napisanih s posebnimi značilnostmi, ki so jih lahko le obdelali. Ali pa imajo posebne načine ravnanja s stvarmi, ki se razlikujejo od načina, kako drugi brskalniki ravnajo z njimi. Na primer:
- Sloji so bili ustvarjeni za uporabo v brskalnikih Netscape. Ne delujejo v nobenem drugem brskalniku in so v Netscapeu 6.x + dejansko zastareli.
- Inline okvirji so bili prvotno izdelani samo za Internet Explorer in so od takrat postali del specifikacije HTML.
- Internet Explorer 6.0 dodaja dodaten prostor (npr
), razen če pišete vsebino div vse na eni (dolgi) liniji. (IE 6 ima veliko več quirks kot tudi ta.) - Netscpe 4.7 ne bo prikazoval tabel, ki niso napisani v pravilnem HTML - namesto tega prikaže prazno stran. To je bilo določeno v Netscapeu 6.
Težava pri razvijalcih brskalnikov je, da morajo ustvariti spletne brskalnike, ki so nazaj združljivi s spletnimi stranmi, zgrajenimi za starejše brskalnike. Da bi rešili to težavo, so ustvarjalci brskalnikov ustvarili načine za delovanje brskalnikov. Te načine določajo prisotnost ali odsotnost elementa DOCTYPE in kateri klici DOCTYPE.
Preklop DOCTYPE in "Quirks Mode"
Če na svojo spletno stran postavite naslednji DOCTYPE:
Sodobni brskalniki (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) bi to razlagali na naslednji način:
- Ker je pravilno napisana DOCTYPE, to sproži standardni način.
- To je prehodni dokument HTML 4.01
- Ker je to v načinu standardov, bo večina brskalnikov postala skladna z vsebino (ali večinoma skladna) z HTML 4.01 prehodno
In če to datoteko DOCTYPE vstavite v svoj dokument:
To pove sodobnim brskalnikom, v katerih želite prikazati svojo stran HTML 4.01 v skladu z DTD.
Ti brskalniki bodo prešli v strogi ali standardni način in bodo strani postali v skladu s standardi. (Torej, za ta dokument lahko oznake, kot jih je brskalnik lahko popolnoma prezrti, ker je bil element FONT opuščen v HTML 4.01 Strict.)
Če pustite DOCTYPE v celoti, se brskalniki samodejno premaknejo v način "quirks".
Spodnja tabela prikazuje, kaj delajo skupni brskalniki, ko so predstavljeni z različnimi deklaracijami DOCTYPE.
Microsoft naredi težje
Internet Explorer 6 ima tudi funkcijo, da če vnesete karkoli nad deklaracijo DOCTYPE, se bodo prešli v način preklopa. Torej, oba od teh primerov bo IE 6 v način preklopa, čeprav so deklaracije DOCTYPE v strogem načinu standarda:
in XHTML 1.1 DOCTYPE:
Plus, če prideš mimo IE6, potem imaš "funkcijo", ki jo je Microsoft dodal v IE8 in IE9: preklapljanje elementa META in umestitev spletnih strani na spletno mesto. Dejansko imajo ti dve različici brskalnika do sedem (!) Različnih načinov:
- IE 5.5 način prepletanja (IE 8 in 9)
- IE 7 standardni način (IE 8 in 9)
- IE 8 skoraj standardni način (IE 8 in 9)
- IE 8 standardni način (IE 8 in 9)
- IE 9 skoraj standardni način (IE 9)
- IE 9 standardni način (IE 9)
- Način XML (IE 9)
IE 8 je uvedel tudi "način združljivosti", kjer se je uporabnik lahko odločil za spremembo modela za upodabljanje v IE 7 način. Torej, tudi če nastavite način, ki ga želite nastaviti z uporabo elementov DOCTYPE in META, lahko svojo stran še vedno potisnete v manj standardni način.
Kaj je Quirksov način?
Način Quirks je bil ustvarjen, da pomaga obravnavati vse čudne in neustrezne podpore za brskalnik in hacks, ki jih uporabljajo spletni oblikovalci za reševanje teh stvari. Zaskrbljenost, ki so jo imeli proizvajalci brskalnika, je, da bi, če bi preklopili svoje brskalnike na popolno skladnost s specifikacijami, bodo spletni oblikovalci ostali za sabo.
Z nastavitvijo preklopa DOCTYPE in "Quirks Mode" je to omogočilo spletnim oblikovalcem, da izberejo, kako želijo, da brskalniki podajo svoj HTML.
Učinki v načinu Quirks
Obstaja več učinkov, ki jih večina brskalnikov uporablja v načinu Quirks:
- V nekaterih brskalnikih se model polja spremeni v različico IE 5.5 modula polja v načinu preklopa.
- Nekateri brskalniki ne tvorijo slogov v tabelah
- Način Quirks vpliva na razčlenjevanje CSS in CSS postavitve dramatično, če pretvorite strani v standardni način iz načina kvarjenja, preizkusite postavitev CSS in podrobno razčlenjevanje.
- Spremljajte spreminjanje skriptov, ko ste v načinu preklopa. Firefox spreminja način delovanja atributa id, na primer. IE8 in IE9 imata zelo dramatične spremembe v scenariju v načinu quirks.
Obstaja tudi razlika v načinu "Skoraj standardi:"
- Višina celic tabele s samo slikami v notranjosti se izračuna drugače od standardnega načina.
Kako izbrati DOCTYPE
Podrobneje bom podrobneje opisal v svojem članku DOCTYPE List, vendar tukaj je nekaj splošnih pravil:
- Najprej izberite način standardov. In sedanji standard, ki ga je treba uporabljati, je HTML5: Razen če imate poseben razlog, da se izognete uporabi HTML5 DOCTYPE, morate to uporabiti.
- Pojdite na strogo HTML 4.01, če boste morali potrditi stare elemente ali želite izogniti novim funkcijam zaradi nekega razloga:
- Če ste narezali slike v tabelo in jih ne želite odpraviti, pojdite na prehodni HTML 4.01:
- Ne prepišite strani namerno v načinu quirks. Vedno uporabite DOCTYPE. To vas bo prihranilo v času razvoja v prihodnosti in res nima nobene koristi. IE6 hitro izgublja priljubljenost in z oblikovanjem za ta brskalnik (kar je v bistvu tisto, kar je oblikovanje v načinu quirks) omejite sebe, svoje bralce in vaše strani. Če morate napisati za IE 6 ali 7, nato uporabite pogojne pripombe, ki jih podpirate, namesto da bi sodobne brskalnike pritegnili v način preobremenjenosti.
Zakaj uporabljati DOCTYPE
Ko se zavedate te vrste preklopa DOCTYPE, lahko neposredno vplivate na vaše spletne strani z uporabo DOCTYPE, ki označuje, kaj lahko brskalnik pričakuje od vaše strani. Ko enkrat začnete uporabljati DOCTYPE, boste pisali HTML, ki je bližje veljavnosti (še vedno jo morate potrditi). In s tem, da napišete veljaven XHTML, proizvajalce brskalnikov spodbujate k izdelovanju brskalnikov, skladnih s standardi.
Različice brskalnika in način Quirks
DOCTYPE | Android Chrome Firefox IE 8+ iOS Opera 7,5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Nihče | Quirks Mode | Quirks Mode | Quirks Mode |
HTML 3.2 | |||
Quirks Mode | Quirks Mode | Quirks Mode | |
HTML 4.01 | |||
Prehodna | Standardni način * | Standardni način * | Standardni način |
Prehodna | Quirks Mode | Quirks Mode | Quirks Mode |
Strog | Standardni način | Standardni način * | Standardni način |
Strog | Standardni način | Standardni način * | Standardni način |
HTML5 | |||
Standardni način | Standardni način * | Quirks Mode | |
* S to DOCTYPE so brskalniki v bližini standardov, ki so skladni, vendar imajo nekaj težav - preverite, ali jih testirate. To je znano tudi kot "skoraj standardni način". |