Взрыв IE7 - Что это значит? - PullRequest
36 голосов
/ 14 февраля 2011

Это название не так безумно, как кажется.Я обещаю !!

При поиске другого вопроса в таблицах стилей Stack Overflow я заметил следующее:

...
width: auto;
...
width: 650px!ie7;
padding-bottom: 20px!ie7;
...

Это странный тип условного оформления?Это ошибка?Предполагая, что это не ошибка, это работает со всеми версиями IE?Есть ли способ указать, что данное правило должно применяться только к версиям IE больше, чем, скажем, 7?

Я никогда раньше не сталкивался с этим - я всегда использовал условные комментарии для IEстили (и для чего бы это ни стоило, я предпочитаю хранить все специфичные для IE стили полностью отдельно).

1 Ответ

57 голосов
/ 14 февраля 2011

Я слышал об этом раньше, но не с точным текстом !ie7.

Я нашел здесь ссылку: http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

! Т.е.

Internet Explorer 7 исправил одну из проблем с идентификатором! Important, но он все еще имеет проблемы, когда в идентификаторе есть ошибка.Если вместо важного используется недопустимое имя идентификатора, Internet Explorer 7 и ниже будет обрабатывать свойство обычно, а не сбой.Следовательно, в любой блок объявления стилей можно включить свойства, предназначенные только для Internet Explorer, и добавить идентификатор! Ie. Почти любое слово может использоваться вместо ie.

Идентификатор! Ie позволяет применять свойство в IE 7 и ниже.Это может или не может работать в будущих версиях.Предупреждение: здесь используется недопустимый CSS!

Итак, width: 650px!ie7; будет применяться только в IE 7 и ниже.

Фактический текст ie7 не требуется,но это разумная строка для напоминания людям о цели взлома.

...