Leave Out ў Doctype Вырабіць браўзэры ў рэжыме сумяшчальнасці
Калі вы былі праектавання вэб - старонак для больш чым на некалькі месяцаў, вы, хутчэй за ўсё , ведаюць пра цяжкасці ў напісанні старонкі , якая выглядае так жа ва ўсіх браўзэрах . На самай справе, гэта немагчыма. Многія браўзэры былі напісаны са спецыяльнымі функцыямі, якія толькі яны могуць справіцца. Або ў іх ёсць спецыяльныя спосабы апрацоўкі рэчаў, якія адрозніваюцца ад таго, як звяртацца з імі ў іншых браўзэрах. Напрыклад:
- Пласты былі створаны для выкарыстання ў Netscape браўзэраў. Яны не працуюць у любым іншым браўзэры, а на самай справе былі састарэлымі ў Netscape 6.x +.
- Убудаваныя рамкі першапачаткова былі створаны для Internet Explorer толькі, і з таго часу сталі часткай HTML спецыфікацыі.
- Internet Explorer 6.0 дадае дадатковае прастору (падобна
) Навакольныя тэг, калі вы пішаце змесціва DIV усё на адной (доўгай) лініі. (IE 6 мае нашмат больш дзівацтвы, а таксама гэты.) - Netscpe 4,7 не будзе адлюстроўваць табліцы, якія не напісаны ў правільным фармаце HTML - гэта паказвае пустую старонку. Гэта было выпраўлена ў Netscape 6.
Праблема для распрацоўнікаў браўзэра з'яўляецца тое, што яны павінны ствараць вэб-браўзэры, якія маюць зваротную сумяшчальнасць з вэб-старонак, створаных для старых браўзэраў. Для таго, каб справіцца з гэтай праблемай, распрацоўнікі браўзэраў стварылі рэжымы для браўзэраў працаваць. Гэтыя рэжымы вызначаюцца наяўнасцю або адсутнасцю DOCTYPE элемента і што гэта DOCTYPE выклікаў.
DOCTYPE Камутацыя і «дзівацтвы Mode»
Калі вы змесціце наступны DOCTYPE ў вашай вэб-старонцы:
Сучасныя браўзэры (Android 1+, Chrome 1+, IE 6+, IOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) будзе інтэрпрэтаваць гэта наступным чынам:
- Таму што ёсць правільна напісана DOCTYPE, гэта выклікае стандартны рэжым.
- Гэта HTML 4.01 Transitional дакумент
- Таму што ў стандартным рэжыме, большасць браўзэраў адлюстроўваюць змесціва сумяшчальных (ці ў асноўным) сумяшчальны з 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 5.5 дзівацтвы (IE 8 і 9)
- Рэжым IE 7 стандартаў (IE 8 і 9)
- IE 8 у рэжыме амаль стандарты (IE 8 і 9)
- Рэжым IE 8 стандартаў (IE 8 і 9)
- IE 9 Рэжым амаль стандартаў (IE 9)
- IE рэжым 9 стандартаў (IE 9)
- Рэжым XML (IE 9)
IE 8 таксама ўведзены «рэжым сумяшчальнасці», дзе карыстальнік можа выбраць, каб змяніць мадэль рэндэрынгу назад у IE рэжыме 7. Так што , нават калі вы ўсталявалі рэжым , які вы жадаеце ўсталяваць , выкарыстоўваючы як DOCTYPE і META элементы, ваша старонка можа ўсё яшчэ быць адкінутая ў менш рэжым адпаведных стандартаў.
Што такое Quirks Mode?
Рэжым Quirks быў створаны, каб дапамагчы справіцца з усімі дзіўным рэндэрынгу і неадпаведнымі падтрымкі браўзэра і ўзломвае, што вэб-дызайнеры выкарыстоўваюць, каб мець справу з гэтымі рэчамі. Апасенні, што вытворцы браўзэраў было тое, што, калі яны пераключылі свае браўзэры больш поўнае захаванне спецыфікацыі, вэб-дызайнеры засталіся б ззаду.
Усталёўваючы пераключэнне DOCTYPE і «Quirks Mode» гэта дазволіла вэб-дызайнераў, каб выбраць, як яны хацелі браўзэраў, каб зрабіць іх HTML.
Дзівацтваў рэжым Эфекты
Ёсць некалькі эфектаў, што большасць браўзэраў выкарыстоўваюць у рэжыме сумяшчальнасці:
- У некаторых браўзэрах, мадэль скрынкі змены ў IE 5.5 версіі блокавай мадэлі ў рэжыме сумяшчальнасці.
- Некаторыя браўзэры не спадкуюць стылі ў табліцы
- Рэжым Quirks ўплывае на парсінга CSS і CSS макет значна, калі вы конвертируете старонкі ў стандартным рэжыме ў рэжыме зваротнай сумяшчальнасці, пераканайцеся, каб праверыць макет CSS і разбор шырока.
- Сачыце за змены ў сцэнар, калі ў рэжыме сумяшчальнасці. Firefox змяняе спосаб атрыбут ID працуе, напрыклад. IE8 і IE9 маюць вельмі рэзкія змены ў сцэнар у рэжыме сумяшчальнасці.
Ёсць таксама розніца ў «Амаль стандартным рэжыме:»
- Вышыня вочак табліцы толькі з выявамі ўнутры вылічаецца па-рознаму з рэжыму стандартаў.
Як выбраць DOCTYPE
Я ўдавацца ў падрабязнасці ў маім артыкуле Спіс DOCTYPE, але вось некалькі агульных правілаў:
- Заўсёды выбірайце стандартны рэжым раней усіх. І ў цяперашні час стандарт вы павінны выкарыстоўваць гэта HTML5: Калі ў вас няма асаблівых прычын, каб пазбегнуць выкарыстання DOCTYPE HTML5, гэта тое, што вы павінны выкарыстоўваць.
- Перайсці да строгага HTML 4.01, калі вам трэба праверыць састарэлыя элементы або хочуць, каб пазбегнуць новых магчымасцяў па некаторых прычынах:
- Калі нарэзаныя выявы ў табліцы і не хоча, каб іх выправіць, перайдзіце да пераходным HTML 4.01:
- Не пісаць старонкі наўмысна ў рэжыме сумяшчальнасці. Заўсёды выкарыстоўвайце 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.» |