Оставете доктоп, за да поставите браузърите в режим Quirks
Ако сте проектирали уеб страници повече от няколко месеца, най-вероятно сте наясно с трудността при написването на страница, която изглежда еднакво във всички браузъри . Всъщност това е невъзможно. Многобройни браузъри са написани със специални функции, които само те биха могли да се справят. Или имат специални начини да се справят с неща, различни от начина, по който се справят другите браузъри. Например:
- Слоевете са създадени за използване в браузърите Netscape. Те не работят в друг браузър и всъщност са били отхвърлени в Netscape 6.x +.
- Вградените кадри първоначално са създадени само за Internet Explorer и оттогава са станали част от спецификацията на HTML.
- Internet Explorer 6.0 добавя допълнително място (като
), заобикалящи маркерите, освен ако не напишете съдържанието на div all върху една (дълга) линия. (IE 6 има много повече странности, както и тази.) - Netscpe 4.7 няма да показва таблици, които не са написани в правилния HTML - вместо това се показва празна страница. Това бе зададено в Netscape 6.
Проблемът за разработчиците на браузъри е, че те трябва да създават уеб браузъри, които са обратно съвместими с уеб страници, създадени за по-стари браузъри. За да се справят с този проблем, производителите на браузъри създадоха режими, в които браузърите да работят. Тези режими се определят от наличието или отсъствието на елемент DOCTYPE и от това, което DOCTYPE нарича.
DOCTYPE Превключване и "режим Quirks"
Ако поставите следния DOCTYPE във вашата уеб страница:
Съвременните браузъри (Android 1+, Chrome 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.
Microsoft го прави по-трудно
Internet Explorer 6 има и функцията, че ако поставите нещо над декларацията DOCTYPE, те ще бъдат в режим quirks. И така, и двата примера ще поставят IE 6 в режим quirks, въпреки че декларациите DOCTYPE казват, че са в строг стандартен режим:
и XHTML 1.1 DOCTYPE:
Плюс това, ако преодолеете IE6, имате "функцията", която Microsoft е добавила в IE8 и IE9: превключване на елементите на META и черния списък на уебсайтове. Всъщност тези две версии на браузъра имат до седем (!) Различни режима:
- Режим IE 5.5 quirks (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?
Quirks режимът е създаден, за да помогне да се справят с всички странни рендиране и несъответстващи поддръжка на браузъра и хакове, които уеб дизайнерите са използвали, за да се справят с тези неща. Загрижеността, че производителите на браузъри имаха, е, че ако превключат браузърите си в съответствие с пълната спецификация, уеб дизайнерите ще останат зад гърба си.
Чрез настройването на превключването DOCTYPE и "Quirks Mode" това позволи на уеб дизайнерите да изберат как искат браузърите да изобразяват своя HTML код.
Ефекти на режима на quirks
Има няколко ефекти, които повечето браузъри използват в режим Quirks:
- В някои браузъри моделът на кутията се променя в версията на IE 5.5 на модела на кутията в режим quirks.
- Някои браузъри не наследяват стиловете в таблици
- Режимът Quirks засяга драстично синхронизирането на оформлението на CSS и CSS, ако конвертирате страници в стандартен режим от режим quirks, не забравяйте да тествате CSS оформлението си и да анализирате екстензивно.
- Гледайте за промени в скриптовете, когато сте в режим quirks. Firefox променя начина, по който работи атрибутът id например. IE8 и IE9 имат много драматични промени в скриптовете в режим quirks.
Съществува и разлика в "Почти стандартен режим:"
- Височината на клетките на таблицата с само изображения вътре се изчислява по различен начин от стандартен режим.
Как да изберете DOCTYPE
Отивам в повече подробности в моята статия DOCTYPE List, но тук са някои общи правила на палеца:
- Винаги изберете първо стандартен режим. А настоящият стандарт, който трябва да използвате, е HTML5: Освен ако нямате конкретна причина да избегнете използването на HTML5 DOCTYPE, това е, което трябва да използвате.
- Отидете в строгия HTML 4.01, ако трябва да потвърдите наследени елементи или искате да избегнете нови функции по някаква причина:
- Ако сте изрязали изображения в таблица и не искате да ги коригирате, преминете към Преходен HTML 4.01:
- Не пишете страници умишлено в режим 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, браузърите са близки до стандартите, но имат някои проблеми - не забравяйте да тествате. Това също е известно като "Почти стандартен режим". |