Оставете го Doctype да ги става прелистувачите во Quirks режим
Ако сте дизајнирале веб страници повеќе од неколку месеци, најверојатно сте свесни за тешкотијата во пишувањето на страница која изгледа истото во сите прелистувачи . Всушност, тоа е невозможно. Многу прелистувачи беа напишани со посебни карактеристики кои само тие би можеле да се справат. Или тие имаат посебни начини за справување со нешта кои се различни од тоа како другите прелистувачи ги справуваат. На пример:
- Слоевите се создадени за употреба во Netscape пребарувачите. Тие не работат во било кој друг прелистувач, и всушност биле застарени во Netscape 6.x +.
- Вградените рамки првично беа креирани само за Internet Explorer, и оттогаш станаа дел од спецификацијата на HTML.
- Internet Explorer 6.0 додава дополнителен простор (како
) околните ознаки, освен ако не ја пишувате содржината на div сите на една (долга) линија. (IE 6 има многу повеќе quirks, како и оваа.) - Netscpe 4.7 нема да прикажува маси кои не се напишани со точен HTML - наместо тоа, таа покажува празна страница. Ова беше фиксирано во Netscape 6.
Проблемот за развивачите на прелистувачи е дека тие мора да креираат веб прелистувачи кои се компатибилни со веб страници изградени за постари прелистувачи. За да се справат со ова прашање, креаторите на прелистувачи креираа режими за работа на прелистувачите. Овие режими се дефинирани со присуство или отсуство на елемент DOCTYPE и она што го нарекува DOCTYPE.
Префрлување DOCTYPE и "Quirks Mode"
Ако го поставите следниов DOCTYPE на вашата веб-страница:
Модерните прелистувачи (Android 1+, Хром 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) би го протолкувале ова на следниов начин:
- Бидејќи има правилно напишано DOCTYPE, ова го активира стандардниот режим.
- Тоа е документ за транзиција на HTML 4.01
- Бидејќи тоа е во стандарден режим, повеќето прелистувачи ќе ја направат содржината во согласност (или најчесто е во согласност) со HTML 4.01 Transitional
И ако го ставите овој DOCTYPE во вашиот документ:
Ова им кажува на современите прелистувачи дека сакате да ја прикажете вашата HTML 4.01 страница во строга согласност со DTD.
Овие прелистувачи ќе одат во "строги" или "стандарди" режим и ќе ја направат страницата во согласност со стандардите. (Значи, за овој документ, тагови како што може да бидат целосно игнорирани од страна на прелистувачот, бидејќи елементот FONT е застарен во HTML 4.01 Strict.)
Ако целосно ја напуштите DOCTYPE, прелистувачите автоматски се прекршуваат во "quirks" режим.
Табелата подолу покажува што прават обичните прелистувачи кога се презентирани со различни заеднички DOCTYPE декларации.
Мајкрософт го прави потешко
Internet Explorer 6, исто така, ја има функцијата дека ако поставите нешто воопшто над декларацијата DOCTYPE, тие ќе одат во режимот на quirks. Значи, и двата од овие примери ќе го стават IE 6 во режим на quirks, иако DOCTYPE декларациите велат дека се во строги стандарди:
и XHTML 1.1 DOCTYPE:
Плус, ако добиете минатото IE6, тогаш имате "функција" што ја додаде Мајкрософт во 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-страници.
Ефекти на режимот Quirks
Постојат неколку ефекти што повеќето пребарувачи ги користат во Quirks Mode:
- Во некои прелистувачи, кутијата модел се менува во IE 5.5 верзија на кутија модел во quirks режим.
- Некои прелистувачи не наследат стилови во табели
- Режимот Quirks влијае драматично на парсирањето на CSS и CSS распоредот, ако конвертирате страници во стандарден режим од режимот на quirks, бидете сигурни дека ќе го тестирате вашиот CSS распоред и детално анализирање.
- Гледајте за промените во скриптирањето кога се во режим на quirks. Firefox го менува начинот на кој атрибутот id функционира, на пример. IE8 и IE9 имаат многу драматични промени во скриптирањето во режим на quirks.
Исто така има и разлика во "Режимот Речиси стандарди":
- Висината на табеларните ќелии со само слики внатре се пресметува поинаку од стандардниот режим.
Како да изберете DOCTYPE
Јас одам во повеќе детали во мојата статија DOCTYPE Листа, но тука се и некои општи правила:
- Секогаш прво изберете стандарден режим. И сегашниот стандард што треба да го користите е HTML5: Освен ако немате конкретна причина да избегнете користење на HTML5 DOCTYPE, тоа е она што треба да го користите.
- Одете на строг HTML 4.01 ако треба да ги проверите наследните елементи или сакате да избегнете нови функции поради некоја причина:
- Ако имате исечени слики во табела и не сакате да ги поправите, одете на Transitional HTML 4.01:
- Не напишете страници намерно во режимот на чудење. Секогаш користете DOCTYPE. Ова ќе ве спаси за време на развој во иднина, и навистина нема корист. IE6 е брзо губење на популарноста и со дизајнирање за овој прелистувач (што во суштина е она што дизајнирање во режим на quirks е), вие сами се ограничувате, вашите читатели и вашите страници. Ако мора да напишете за IE 6 или 7, тогаш користете условни коментари за да ги подржувате, наместо да ги принудувате модерните прелистувачи во режим на quirks.
Зошто да го користите DOCTYPE
Откако ќе бидете свесни за тоа како се одвива овој тип на DOCTYPE префрлување, можете директно да влијаете на вашите веб-страници со користење на DOCTYPE што укажува на тоа што пребарувачот може да го очекува од вашата страница. Исто така, откако ќе почнете со користење на DOCTYPE, ќе пишувате HTML кој е поблиску до валиден (сеуште треба да го потврдите). И со пишување валидна XHTML, ги поттикнувате креаторите на прелистувачи да изградат стандарди кои се компатибилни со прелистувачи.
Верзии на прелистувачот и режим на Quirks
DOCTYPE | Андроид Хром 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, прелистувачите се блиску до стандардите што се усогласени, но имаат некои проблеми - бидете сигурни да ги тестирате. Ова е исто така познат како Режим на Речиси стандарди. |