С помощью 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.
Я бы вообще рекомендовал опускать пролог и держать браузер в режиме стандартов; я думаю, это облегчит вам жизнь в дальнейшем.