Выкарыстанне DOCTYPE элемента ў рэжыме сумяшчальнасці

Leave Out ў Doctype Вырабіць браўзэры ў рэжыме сумяшчальнасці

Калі вы былі праектавання вэб - старонак для больш чым на некалькі месяцаў, вы, хутчэй за ўсё , ведаюць пра цяжкасці ў напісанні старонкі , якая выглядае так жа ва ўсіх браўзэрах . На самай справе, гэта немагчыма. Многія браўзэры былі напісаны са спецыяльнымі функцыямі, якія толькі яны могуць справіцца. Або ў іх ёсць спецыяльныя спосабы апрацоўкі рэчаў, якія адрозніваюцца ад таго, як звяртацца з імі ў іншых браўзэрах. Напрыклад:

Праблема для распрацоўнікаў браўзэра з'яўляецца тое, што яны павінны ствараць вэб-браўзэры, якія маюць зваротную сумяшчальнасць з вэб-старонак, створаных для старых браўзэраў. Для таго, каб справіцца з гэтай праблемай, распрацоўнікі браўзэраў стварылі рэжымы для браўзэраў працаваць. Гэтыя рэжымы вызначаюцца наяўнасцю або адсутнасцю DOCTYPE элемента і што гэта DOCTYPE выклікаў.

DOCTYPE Камутацыя і «дзівацтвы Mode»

Калі вы змесціце наступны DOCTYPE ў вашай вэб-старонцы:

Сучасныя браўзэры (Android 1+, Chrome 1+, IE 6+, IOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) будзе інтэрпрэтаваць гэта наступным чынам:

  1. Таму што ёсць правільна напісана DOCTYPE, гэта выклікае стандартны рэжым.
  2. Гэта HTML 4.01 Transitional дакумент
  3. Таму што ў стандартным рэжыме, большасць браўзэраў адлюстроўваюць змесціва сумяшчальных (ці ў асноўным) сумяшчальны з HTML 4.01 Transitional

А калі паставіць гэты DOCTYPE ў дакуменце:

Гэта сведчыць сучасныя браўзэры, якія вы хочаце, каб адлюстраваць старонку HTML 4.01 ў строгай адпаведнасці з DTD.

Гэтыя браўзэры будуць ісці ў «строгі» або рэжым «стандартаў» і адлюстравання старонкі ў адпаведнасці са стандартамі. (Такім чынам, для дадзенага дакумента, тэгі, такія як можа быць цалкам ігнаруецца браўзэрам, так як элемент FONT састарэлым у HTML 4.01 Strict.)

Калі пакінуць DOCTYPE цалкам, браўзэры аўтаматычна штурхнуў ў рэжыме «дзівацтвы».

Прыведзеная ніжэй табліца паказвае, што агульныя браўзэры, калі прадстаўлены рознымі дэкларацыямі агульнай DOCTYPE.

Microsoft робіць яго больш цяжкім

Internet Explorer 6 таксама мае тую асаблівасць, што калі вы пакладзеце што-небудзь на ўсё вышэй дэкларацыі DOCTYPE, яны будуць ісці ў рэжыме сумяшчальнасці. Такім чынам, абодва з гэтых прыкладаў будзе ставіць IE 6 у рэжыме сумяшчальнасці, хоць заявы DOCTYPE кажуць у строгім рэжыме стандартаў:

і XHTML 1.1 DOCTYPE:

Акрамя таго , калі вы прайсці IE6, то ў вас ёсць «асаблівасць» , які дадаў Microsoft у IE8 і IE9: META элемент пераключэння і вэб - сайт чорнага спісу. На самай справе, гэтыя дзве версіі браўзэра зараз да сямі розных рэжымаў (!):

IE 8 таксама ўведзены «рэжым сумяшчальнасці», дзе карыстальнік можа выбраць, каб змяніць мадэль рэндэрынгу назад у IE рэжыме 7. Так што , нават калі вы ўсталявалі рэжым , які вы жадаеце ўсталяваць , выкарыстоўваючы як DOCTYPE і META элементы, ваша старонка можа ўсё яшчэ быць адкінутая ў менш рэжым адпаведных стандартаў.

Што такое Quirks Mode?

Рэжым Quirks быў створаны, каб дапамагчы справіцца з усімі дзіўным рэндэрынгу і неадпаведнымі падтрымкі браўзэра і ўзломвае, што вэб-дызайнеры выкарыстоўваюць, каб мець справу з гэтымі рэчамі. Апасенні, што вытворцы браўзэраў было тое, што, калі яны пераключылі свае браўзэры больш поўнае захаванне спецыфікацыі, вэб-дызайнеры засталіся б ззаду.

Усталёўваючы пераключэнне DOCTYPE і «Quirks Mode» гэта дазволіла вэб-дызайнераў, каб выбраць, як яны хацелі браўзэраў, каб зрабіць іх HTML.

Дзівацтваў рэжым Эфекты

Ёсць некалькі эфектаў, што большасць браўзэраў выкарыстоўваюць у рэжыме сумяшчальнасці:

Ёсць таксама розніца ў «Амаль стандартным рэжыме:»

Як выбраць DOCTYPE

Я ўдавацца ў падрабязнасці ў маім артыкуле Спіс DOCTYPE, але вось некалькі агульных правілаў:

  1. Заўсёды выбірайце стандартны рэжым раней усіх. І ў цяперашні час стандарт вы павінны выкарыстоўваць гэта HTML5:
    Калі ў вас няма асаблівых прычын, каб пазбегнуць выкарыстання DOCTYPE HTML5, гэта тое, што вы павінны выкарыстоўваць.
  2. Перайсці да строгага HTML 4.01, калі вам трэба праверыць састарэлыя элементы або хочуць, каб пазбегнуць новых магчымасцяў па некаторых прычынах:
  3. Калі нарэзаныя выявы ў табліцы і не хоча, каб іх выправіць, перайдзіце да пераходным HTML 4.01:
  4. Не пісаць старонкі наўмысна ў рэжыме сумяшчальнасці. Заўсёды выкарыстоўвайце DOCTYPE. Гэта пазбавіць вас ад часу развіцця ў будучыні, і на самай справе не мае ніякай карысці. IE6 імкліва губляе папулярнасць і праектуючы для гэтага браўзэра (які, па сутнасці, што праектаванне ў рэжыме сумяшчальнасці ёсць) вы абмяжоўваеце сябе, сваіх чытачоў, і вашыя старонкі. Калі вы павінны напісаць для IE 6 ці 7, а затым выкарыстоўваць ўмоўныя каментары для іх падтрымкі, а не прымушаць сучасныя браўзэры ў рэжыме сумяшчальнасці.

Навошта выкарыстоўваць DOCTYPE

Пасля таго, як вы ведаеце гэтага тыпу пераключэння DOCTYPE адбываецца, вы можаце паўплываць на вашы вэб-старонкі больш непасрэдна з дапамогай DOCTYPE, што паказвае на тое, што браўзэр можа чакаць ад вашай старонкі. Акрамя таго, як толькі вы пачнеце выкарыстоўваць DOCTYPE, вы будзеце пісаць HTML, які бліжэй да сілы (вы ўсё роўна павінны праверыць яго). І напісаўшы правільны XHTML, вы заахвочвае вытворца браўзэраў для стварэння сумяшчальных са стандартамі браўзэраў.

Версіі браўзэра і рэжым Quirks

DOCTYPE Android
хром
Firefox
IE 8+
IOS
Opera 7.5+
сафары
IE 6
IE 7
Opera 7
Netscape 6
ні рэжым Quirks рэжым Quirks рэжым Quirks
HTML 3.2
рэжым Quirks рэжым Quirks рэжым Quirks
HTML 4.01
пераходны Стандартны рэжым * Стандартны рэжым * Стандартны рэжым
пераходны рэжым Quirks рэжым Quirks рэжым Quirks
строгі Стандартны рэжым Стандартны рэжым * Стандартны рэжым
строгі Стандартны рэжым Стандартны рэжым * Стандартны рэжым
HTML5
Стандартны рэжым Стандартны рэжым * рэжым Quirks
* З дапамогай гэтага DOCTYPE, браўзэры блізкія да стандартаў адпаведных патрабаванняў, але ёсць некаторыя пытанні, абавязкова праверце. Гэта таксама вядома як «Almost Standards Mode.»