IE6 и XML-пролог

С помощью XML-пролога, например

? xml version="1.0" encoding="iso-8859-1"? >

и Doctype как

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Я могу заставить свою страницу отображаться так, как ожидается. Однако в IE7 та же страница отображается неправильно. (span внутри div не выравнивается по вертикали) Статьи в Интернете говорят о том, что XML prolog + doctype переводит IE6 в режим quirks. Однако эта статья, кажется, говорит об обратном, хотя в ней не упоминается версия (6 или 7), к которой она относится, хотя статья датирована сентябрем 2005 года, что заставляет меня полагать, что она относится к IE6.

Переводит ли XML Prolog + doc type IE6 в режим причуд? А что насчет IE7? Есть ли какие-либо рекомендации за или против использования prolog + doctype?

Добавление XML-пролога перед doctype переводит IE6 в режим рендеринга quirks. (См. здесь.) Фактически, любой пробел перед doctype переводит IE6 в режим quirks. Это не относится к IE7 и выше. Вы можете использовать document.compatMode (пример), чтобы браузер сообщил вам, какой режим он использует для рендеринга.

Запись в блоге IE на MSDN ссылается на изменения, внесенные в IE7, которые позволяют IE7 оставаться в режиме стандартов при использовании соответствующего doctype, даже если ему предшествует XML prolog.

Я бы вообще рекомендовал опускать пролог и держать браузер в режиме стандартов; я думаю, это облегчит вам жизнь в дальнейшем.

Комментарии (0)