Използване на елемента DOCTYPE в режим Quirks

Оставете доктоп, за да поставите браузърите в режим Quirks

Ако сте проектирали уеб страници повече от няколко месеца, най-вероятно сте наясно с трудността при написването на страница, която изглежда еднакво във всички браузъри . Всъщност това е невъзможно. Многобройни браузъри са написани със специални функции, които само те биха могли да се справят. Или имат специални начини да се справят с неща, различни от начина, по който се справят другите браузъри. Например:

Проблемът за разработчиците на браузъри е, че те трябва да създават уеб браузъри, които са обратно съвместими с уеб страници, създадени за по-стари браузъри. За да се справят с този проблем, производителите на браузъри създадоха режими, в които браузърите да работят. Тези режими се определят от наличието или отсъствието на елемент DOCTYPE и от това, което DOCTYPE нарича.

DOCTYPE Превключване и "режим Quirks"

Ако поставите следния DOCTYPE във вашата уеб страница:

Съвременните браузъри (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) ще интерпретират това по следния начин:

  1. Тъй като има правилно написан DOCTYPE, това задейства стандартен режим.
  2. Това е HTML 4.01 преходен документ
  3. Тъй като това е в стандартен режим, повечето браузъри ще направят съдържанието съвместимо (или най-вече съвместимо) с HTML 4.01 Transitional

И ако поставите този DOCTYPE във вашия документ:

Това казва на съвременните браузъри, че искате да покажете страницата си HTML 4.01 в стриктно съответствие с DTD.

Тези браузъри ще преминат в режим "строг" или "стандартен" и ще правят страницата в съответствие със стандартите. (Така че за този документ маркери като такива може да бъдат напълно игнорирани от браузъра, тъй като елементът FONT е отхвърлен в HTML 4.01 Strict.)

Ако оставите DOCTYPE напълно, браузърите автоматично ще бъдат пуснати в режим "quirks".

Таблицата по-долу показва какво правят обикновените браузъри, когато се представят с различни общи декларации за DOCTYPE.

Microsoft го прави по-трудно

Internet Explorer 6 има и функцията, че ако поставите нещо над декларацията DOCTYPE, те ще бъдат в режим quirks. И така, и двата примера ще поставят IE 6 в режим quirks, въпреки че декларациите DOCTYPE казват, че са в строг стандартен режим:

и XHTML 1.1 DOCTYPE:

Плюс това, ако преодолеете IE6, имате "функцията", която Microsoft е добавила в IE8 и IE9: превключване на елементите на META и черния списък на уебсайтове. Всъщност тези две версии на браузъра имат до седем (!) Различни режима:

IE 8 също така въведе "режим на съвместимост", при който потребителят може да избере да промени модела за рендиране обратно в IE 7 режим. Така че, дори ако зададете режима, който искате да настроите, като използвате елементите DOCTYPE и META, страницата ви все още може да бъде върната обратно в режим, който не съответства на стандартите.

Какво е режим Quirks?

Quirks режимът е създаден, за да помогне да се справят с всички странни рендиране и несъответстващи поддръжка на браузъра и хакове, които уеб дизайнерите са използвали, за да се справят с тези неща. Загрижеността, че производителите на браузъри имаха, е, че ако превключат браузърите си в съответствие с пълната спецификация, уеб дизайнерите ще останат зад гърба си.

Чрез настройването на превключването DOCTYPE и "Quirks Mode" това позволи на уеб дизайнерите да изберат как искат браузърите да изобразяват своя HTML код.

Ефекти на режима на quirks

Има няколко ефекти, които повечето браузъри използват в режим Quirks:

Съществува и разлика в "Почти стандартен режим:"

Как да изберете DOCTYPE

Отивам в повече подробности в моята статия DOCTYPE List, но тук са някои общи правила на палеца:

  1. Винаги изберете първо стандартен режим. А настоящият стандарт, който трябва да използвате, е HTML5:
    Освен ако нямате конкретна причина да избегнете използването на HTML5 DOCTYPE, това е, което трябва да използвате.
  2. Отидете в строгия HTML 4.01, ако трябва да потвърдите наследени елементи или искате да избегнете нови функции по някаква причина:
  3. Ако сте изрязали изображения в таблица и не искате да ги коригирате, преминете към Преходен HTML 4.01:
  4. Не пишете страници умишлено в режим quirks. Винаги използвайте DOCTYPE. Това ще ви спести време за развитие в бъдеще и наистина няма полза. IE6 бързо губи популярност и като проектира за този браузър (което е по същество това, което е проектирането в режим quirks е) вие ограничавате себе си, вашите читатели и страниците си. Ако трябва да пишете за IE 6 или 7, използвайте условни коментари, за да ги поддържате, вместо да принуждавате модерните браузъри да превключват в режим quirks.

Защо да използваме DOCTYPE

След като сте наясно, че този тип прехвърляне на DOCTYPE се случва, можете да въздействате директно върху уеб страниците си, като използвате DOCTYPE, което показва какво може да очаква браузърът от вашата страница. Също така, след като започнете да използвате DOCTYPE, ще пишете HTML, който е по-близо до валидността (трябва да го потвърдите). И като пишете валиден XHTML, насърчавате производителите на браузъри да създават браузъри, съвместими със стандартите.

Версиите на браузъра и режима "Quirks"

DOCTYPE андроид
Chrome
Firefox
IE 8+
IOS
Opera 7.5+
сафари
IE 6
IE 7
Opera 7
Netscape 6
Нито един Режим Режим Режим
HTML 3.2
Режим Режим Режим
HTML 4.01
преходен Стандартен режим * Стандартен режим * Режим на стандарти
преходен Режим Режим Режим
стриктен Режим на стандарти Стандартен режим * Режим на стандарти
стриктен Режим на стандарти Стандартен режим * Режим на стандарти
HTML5
Режим на стандарти Стандартен режим * Режим
* С този DOCTYPE, браузърите са близки до стандартите, но имат някои проблеми - не забравяйте да тествате. Това също е известно като "Почти стандартен режим".