Hvis du har utformet nettsider i mer enn et par måneder, er du mest sannsynlig klar over hvor vanskelig det er å skrive en side som ser ut som det er i alle nettlesere. Faktisk er det umulig. Mange nettlesere ble skrevet med spesielle funksjoner som de bare kunne håndtere. Eller de har spesielle måter å håndtere ting som er forskjellige fra hvordan andre nettlesere håndterer dem. For eksempel:
- Lag ble laget for bruk i Netscape-nettlesere. De fungerer ikke i noen annen nettleser, og har faktisk blitt avskrevet i Netscape 6.x +.
- Inline-rammer ble opprinnelig opprettet for Internet Explorer, og har siden blitt en del av HTML-spesifikasjonen.
- Internet Explorer 6.0 legger til et ekstra mellomrom (som a) omkringliggende koder, med mindre du skriver innholdet i div-en på en (lang) linje. (IE 6 har mange flere quirks så vel som denne.)
- Netscpe 4.7 viser ikke tabeller som ikke er skrevet i riktig HTML - det viser en tom side i stedet. Dette ble løst i Netscape 6.
Problemet med nettleserutviklere er at de må lage nettlesere som er bakoverkompatible med nettsider som er bygget for eldre nettlesere. For å håndtere dette problemet, opprettet nettleserskapene moduser for nettleserne å operere i. Disse modusene er definert av nærvær eller fravær av et DOCTYPE-element, og hva det DOCTYPE
samtaler.
DOCTYPE
Jeg går inn i mer detalj i artikkelen min DOCTYPE
Liste, men her er noen generelle tommelfingerregler:
- Velg alltid standardmodus først. Og den nåværende standarden du bør bruke er HTML5: Med mindre du har en bestemt grunn til å unngå å bruke HTML5
DOCTYPE
, dette er det du bør bruke. - Gå til streng HTML 4.01 hvis du trenger å validere eldre elementer eller vil unngå nye funksjoner av en eller annen grunn:
- Hvis du har skivede bilder i et bord og ikke vil fikse dem, går du til Transitional HTML 4.01:
- Ikke skriv sider med vilje i quirks-modus. Bruk alltid a
DOCTYPE
. Dette vil spare deg for utviklingstid i fremtiden, og har egentlig ingen fordel. IE6 mister raskt popularitet, og ved å designe for denne nettleseren (som egentlig er hva design i quirks-modus er) begrenser du deg selv, leserne og sidene dine. Hvis du må skrive for IE 6 eller 7, bruk deretter betingede kommentarer for å støtte dem, i stedet for å tvinge moderne nettlesere til quirks-modus.
Hvorfor bruk DOCTYPE
Når du er klar over denne typen DOCTYPE
Hvis du slår på, kan du påvirke websidene dine mer direkte ved å bruke en DOCTYPE
som indikerer hva nettleseren kan forvente fra siden din. Også, når du begynner å bruke DOCTYPE
, du vil skrive HTML som er nærmere å være gyldig (du bør fortsatt validere det). Og ved å skrive gyldig XHTML, oppfordrer du nettlesere til å bygge standarder som er kompatible med nettlesere.
Browser Versjoner og Quirks Mode
DOCTYPE | AndroidChromeFirefoxIE 8+iOSOpera 7.5+Safari | IE 6IE 7Opera 7 | Netscape 6 |
---|---|---|---|
Ingen | Quirks Mode | Quirks Mode | Quirks Mode |
HTML 3.2 | |||
Quirks Mode | Quirks Mode | Quirks Mode | |
HTML 4.01 | |||
Transitional | Standardsmodus * | Standardsmodus * | Standardmodus |
Transitional | Quirks Mode | Quirks Mode | Quirks Mode |
Streng | Standardmodus | Standardsmodus * | Standardmodus |
Streng | Standardmodus | Standardsmodus * | Standardmodus |
HTML5 | |||
Standardmodus | Standardsmodus * | Quirks Mode | |
* Med denne DOCTYPE, er nettlesere nær standarder som er kompatible, men har noen problemer - vær sikker på å teste. Dette er også kjent som "Nesten Standards Mode." |