Уличная магия IE

5 сентября 2008

Продолжая тему того, как нужно прятаться, чтобы не бояться, сегодня я хотел бы предложить вам руководство по использованию магического элемента X-UA-Compatible в контексте общего понимания переключения режимов рендеринга в Internet Explorer.

Итак, сводный список «Режимы рендеринга Internet Explorer».

Принцип построения данного списка звучит просто: что нужно сделать и каких ошибок не допустить для того, чтобы IE6–8 вёл себя согласно поставленным задачам. То есть работал или в режиме совместимости со стандартами (standard compliance mode), или в режиме уловок (quirks mode), или — в случае с IE8 — в режиме соответствия стандартам (super standard mode).

Каждый из примеров списка состоит только из тех элементов, которые необходимы для соответствующего режима. К примеру, для переключения в режим совместимости со стандартами, IE6 нужен только правильный <DOCTYPE>, перед которым возможно наличие только пробелов и переводов строк:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

В то время как для IE8 достаточно произнести подобное заклинание:

  1. <meta http-equiv="X-UA-Compatible" content="IE=7"/>

В данном списке не учтены особенности перехода IE8 из режима соответствия стандартам в режим совместимости со стандартами на интранет-страницах, что является скорее бизнес-ходом, не дающим разработчикам особого выбора. Подробнее об этом можно прочитать у Хокона Ли (Hakon Lie) в заметке «Microsoft breaks IE8 interoperability promise».

Такие вот чудеса.

Комментарии: добавить

Николай Громов (nicothin) 5 сентября 2008 / 6:06

IE6 имеет режим совместимости со стандартами???
:):):)

Ви 8 сентября 2008 / 23:22

IE6 имеет режим совместимости со стандартами???
Только, видимо, по мнению explorer'а, в стандарты забыли дописать «Режим совместимости с MSIE»

pepelsbey 8 сентября 2008 / 23:27

«Не стреляйте в пианиста, он играет, как умеет» ©

variable 10 сентября 2008 / 14:01

есть у меня мечта, нарисовать в ие6 див высотой в 1 пиксель.. но как??

pepelsbey 10 сентября 2008 / 14:10

Да, в общем-то, просто: DIV { height:1px; overflow:hidden; }

ThyBzi 18 октября 2008 / 13:31

> есть у меня мечта, нарисовать в ие6 див высотой в 1 пиксель.. но как??
по этому поводу развлекался давно ещё: http://www.thybzi.com/ie6-height-1px.html
если вкратце - на высоту влияет цвет фона :))

Vitaly Harisov 28 октября 2008 / 13:20

> есть у меня мечта, нарисовать в ие6 див высотой в 1 пиксель.. но как??

font: 0/0 serif; height: 1px;

pepelsbey 28 октября 2008 / 13:49

> font: 0/0 serif; height: 1px;

Вообще overflow:hidden идеологически круче — мы заставляем IE соблюдать заданную высоту блока так, как делают это нормальные браузеры ;)

Vitaly Harisov 29 октября 2008 / 11:37

Или так, да.

November 29 октября 2008 / 17:00

***есть у меня мечта, нарисовать в ие6 див высотой в 1 пиксель.. но как??***

так например

.hr1 {
height:1px;
line-height:0px;
font-size:0px;
border-bottom:1px dashed #4373DC;
}

pepelsbey 29 октября 2008 / 17:11

Надеюсь, что вопрос однопиксельного DIV'а закрыт окончательно.