Atstājiet Doctype, lai pārlūkprogrammas pārvērstu tīri režīmā
Ja esat veidojis tīmekļa lapas vairāk nekā pāris mēnešus, visticamāk apzinātas lapas rakstīšanas grūtības, kas visās pārlūkprogrammās ir vienādas . Patiesībā tas nav iespējams. Daudzas pārlūkprogrammas tika rakstītas ar īpašām funkcijām, kuras tās var apstrādāt. Vai arī viņiem ir īpaši veidi, kā rīkoties ar lietām, kas atšķiras no tā, kā citas pārlūkprogrammas tos apstrādā. Piemēram:
- Slāņi tika izveidoti lietošanai Netscape pārlūkprogrammās. Tie nedarbojas nevienā citā pārlūkprogrammā, un faktiski ir nomākti programmā Netscape 6.x +.
- Sākotnēji iekšējie rāmji tika izveidoti tikai Internet Explorer, un kopš tā laika tie ir kļuvuši par HTML specifikācijas daļu.
- Internet Explorer 6.0 pievieno papildu vietu (piemēram,
) apzīmētus tagus, ja vien jūs nevienā (garajā) rindiņā neesat rakstījis visu divu saturu. (IE 6 ir daudz vairāk quirks, kā arī šo vienu.) - Netscpe 4.7 neparādīs tabulas, kas nav rakstītas pareizā HTML formātā - tā vietā parāda tukšu lapu. Tas tika fiksēts programmā Netscape 6.
Problēma pārlūka izstrādātājiem ir tāda, ka tiem ir jāizveido tīmekļa pārlūkprogrammas, kas ir savietojamas ar vecajām pārlūkprogrammām izveidotajām tīmekļa lapām. Lai risinātu šo problēmu, pārlūkprogrammas veidotāji izveidoja režīmus, pēc kuriem pārlūkprogrammas var darboties. Šos režīmus nosaka DOCTYPE elementa klātbūtne vai neesamība un tas, ko izsauc DOCTYPE.
DOCTYPE pārslēgšana un "impērijas režīms"
Ja savā tīmekļa lapā ievietojat šādu DOCTYPE:
Modernās pārlūkprogrammas (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) to interpretētu šādi:
- Tā kā ir pareizi rakstīts DOCTYPE, tas aktivizē standarta režīmu.
- Tas ir HTML 4.01 pārejas dokuments
- Tā kā tas ir standarta režīmā, lielākā daļa pārlūkprogrammu padarīs saturu atbilstošu (vai lielākoties atbilstošu) HTML 4.01 pārejas režīmam
Un, ja dokumentā ievietojat šo DOCTYPE:
Tas parāda mūsdienu pārlūkprogrammām, ka jūs vēlaties parādīt savu HTML 4.01 lapu, stingri ievērojot DTD.
Šīs pārlūkprogrammas ietilpst režīmā "stingrs" vai "standarts" un padarīs lapu atbilstošu standartiem. (Tātad, šim dokumentam ir tādi tagi, kurus pārlūks var pilnībā ignorēt, jo HTML 4.01 Stingrāka FONT elements nav novecojis).
Ja jūs pilnībā atstājat DOCTYPE, pārlūkprogrammas tiek automātiski pārspīlētas "pieklājības" režīmā.
Zemāk redzamā tabula parāda, ko parasti izmanto pārlūkprogrammas, ja tās tiek rādītas ar dažādām kopīgām DOCTYPE deklarācijām.
Microsoft padara to grūtāk
Internet Explorer 6 arī ir iezīme, ka, ja jūs vispār neievērosit augstāk par DOCTYPE deklarāciju, tās pārejas režīmā. Tātad, abos šajos piemēros tiks ieviests IE 6 vienkāršā režīmā, lai gan DOCTYPE deklarācijas norāda uz stingru standartu režīmu:
un XHTML 1.1 DOCTYPE:
Turklāt, ja jūs saņemat iepriekšējo IE6, tad jums ir "funkcija", ko Microsoft pievienoja IE8 un IE9: META elementu maiņa un vietņu melnā saraksta izveidošana. Patiesībā šīm divām pārlūkprogrammu versijām tagad ir līdz septiņiem (!) Dažādiem režīmiem:
- IE 5.5 quirks režīmā (IE 8 un 9)
- IE 7 standartu režīms (IE 8 un 9)
- IE 8 gandrīz standarta režīms (IE 8 un 9)
- IE 8 standartu režīms (IE 8 un 9)
- IE 9 gandrīz standarta režīmā (IE 9)
- IE 9 standarta režīms (IE 9)
- XML režīms (IE 9)
IE 8 ieviesa arī "Saderības režīmu", kurā lietotājs varēja izvēlēties mainīt atveidošanas modeli atpakaļ uz IE 7 režīmu. Lai pat tad, ja iestatāt režīmu, kuru vēlaties iestatīt, izmantojot gan DOCTYPE, gan META elementus, jūsu lapu vēl joprojām var ieviest mazāk standarta režīmā.
Kas ir Quirks režīms?
Nepieredzējušo režīms tika izveidots, lai palīdzētu atrisināt visas dīvainas atveidošanas un neatbilstošās pārlūkprogrammas atbalsta iespējas un to, ko tīmekļa izstrādātāji izmantoja, lai risinātu šīs lietas. Bažas, ka pārlūku ražotājiem bija tas, ka, ja viņi pārlūkos pārietu pie pilnīgas specifikācijas atbilstības, tīmekļa izstrādātāji paliks aiz sevis.
Iestatot DOCTYPE pārslēgšanu un "Quirks Mode", šie atļautie tīmekļa dizaineri var izvēlēties, kā viņi vēlētos, lai pārlūkprogrammas izveidotu savu HTML.
Impērijas režīma efekti
Ir vairāki efekti, kurus lielākā daļa pārlūkprogrammu izmanto Quirks režīmā:
- Dažās pārlūkprogrammās kastīšu modelis mainās uz kastes modeļa versiju IE 5,5 versijā.
- Dažas pārlūkprogrammas mantoja stilus tabulās
- Nepieredzējušo režīms ievērojami ietekmē CSS un CSS izkārtojuma parsēšanu, ja jūs pārveidojat lapas standarta režīmā no nejaušības režīma, noteikti pārbaudiet CSS izkārtojumu un plaši analizējot.
- Skatieties, kā mainīt skriptu, kad tas notiek trauslajā režīmā. Piemēram, Firefox maina veidu, kādā darbojas id atribūts. IE8 un IE9 ir ļoti dramatiskas izmaiņas skriptu veidošanā tradicionālā režīmā.
Pastāv arī atšķirība "gandrīz standarta režīmā:"
- Galda šūnu augstums ar tikai iekšējiem attēliem tiek aprēķināts atšķirīgi no standarta režīma.
Kā izvēlēties DOCTYPE
Es iesaku sīkāk manā rakstā DOCTYPE List, bet šeit ir daži vispārīgi noteikumi:
- Vienmēr vispirms izvēlieties standarta režīmu. Un pašreizējais standarts, kuru izmantojat, ir HTML5: Ja vien jums nav konkrēta iemesla, lai izvairītos no HTML5 DOCTYPE lietošanas, tas ir tas, ko jums vajadzētu izmantot.
- Iet uz stingru HTML 4.01, ja jums ir nepieciešams apstiprināt mantotos elementus vai vēlaties kādu iemeslu dēļ novērst jaunas funkcijas:
- Ja galdā ir attēli sagriezti šķēlēs un nevēlaties tos novērst, dodieties uz pārejas etiķeti HTML 4.01:
- Nelietojiet rakstīt lapas apzināti quirks režīmā. Vienmēr izmantojiet DOCTYPE. Tas ietaupīs jūs uz izstrādes laiku nākotnē, un tas patiešām nesniegs labumu. IE6 strauji zaudē popularitāti, un, izstrādājot šo pārlūku (kas būtībā ir tas, kas tiek veidots trauksmes režīmā), jūs ierobežojat sevi, savus lasītājus un savas lapas. Ja jums jāraksta IE 6 vai 7, tad izmantojiet nosacītus komentārus, lai tos atbalstītu, nevis piespiežot mūsdienu pārlūkprogrammas trauslā režīmā.
Kāpēc lietot DOCTYPE
Kad esat informēts par šāda veida DOCTYPE pārslēgšanās darbību, varat tieši ietekmēt savas tīmekļa lapas, izmantojot DOCTYPE, kas norāda, ko pārlūkprogramma var sagaidīt no savas lapas. Arī tad, kad sākat lietot DOCTYPE, jūs rakstīsit HTML, kas ir tuvāk tam, ka tas ir derīgs (jums tas joprojām ir jāapstiprina). Un rakstot derīgu XHTML, jūs mudināt pārlūkprogrammu veidotājus veidot standartiem atbilstošas pārlūkprogrammas.
Browser versijas un Quirks režīms
DOKTĪPE | Android Chrome Firefox IE 8+ iOS Opera 7.5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Nav | Dīvains režīms | Dīvains režīms | Dīvains režīms |
HTML 3.2 | |||
Dīvains režīms | Dīvains režīms | Dīvains režīms | |
HTML 4.01 | |||
Pārejas posms | Standartu režīms * | Standartu režīms * | Standartu režīms |
Pārejas posms | Dīvains režīms | Dīvains režīms | Dīvains režīms |
Stingri | Standartu režīms | Standartu režīms * | Standartu režīms |
Stingri | Standartu režīms | Standartu režīms * | Standartu režīms |
HTML5 | |||
Standartu režīms | Standartu režīms * | Dīvains režīms | |
* Izmantojot šo DOCTYPE, pārlūkprogrammas ir tuvu standartiem atbilstošai, taču tām ir daži jautājumi - noteikti pārbaudiet. To sauc arī par "gandrīz standarta režīmu". |