Сегодня в NETTUTS появилась коротенький совет для верстальщиков – как различать в CSS IE6 и IE7 с помощью всего двух символов * и _. Это самый просто хак для ИЕ. Надеюсь понятно что эти два правила нужно располагать именно в таком порядке – сначала правило с “*”, потом “_”.
#someElement {
background: red; /* нормальные браузеры */
*background: green; /* IE7 и ниже */
_background: yellow; /* только IE6 */
}
Однако всё это не способствует прохождению валидации файла стилей. Честно говоря в своих немногочисленных работах никогда не пользуюсь хаками – либо использую условные комментарии (для IE), либо “не судьба” – точнее приходится решать проблемы другими способами или отказываться от чего-то.
Условные комментарии для IE стали доступны с 5-й версии Internet Explorer и поддерживаются только Internet Explorer-ом.
<!--[if IE 6]>
Код только для IE6 - любой html, css, javacsript
<![endif]-->
Официальная документация – условные комментарии на MSDN.
Синтаксис условных комментариев
Элемент |
Пример |
Комментарий |
! |
[if !(IE 6)] |
Оператор НЕ (NOT). Небольшое обновление – раньше тут в качестве примера было указано следующее [if !IE] – что в общем-то глупо писать, поскольку кроме IE условные комментарии больше никто не поддерживает. |
lt |
[if lt IE 5.5] |
Оператор “меньше чем” (less-than). Возвращает true если первый аргумент меньше чем второй. [if lt IE 5] писать абсолютно бессмысленно – код в такой секции не выполнится никем и никогда – условные комментарии работают только с версии IE5. |
lte |
[if lte IE 6] |
Оператор “меньше или равно” (less-than or equal). Возвращает true если первый аргумент меньше или равен второму. |
gt |
[if gt IE 5] |
Оператор “больше чем” (greater-than). Возвращает true если первый аргумент больше второго. |
gte |
[if gte IE 7] |
Оператор “больше или равно ” (greater-than or equal). Возвращает true если первый аргумент больше или равен второму. |
( ) |
[if !(IE 7)] |
Подвыражение. Используется для создания сложных выражений. |
& |
[if (gt IE 5)&(lt IE 7)] |
Оператор И (AND). Возвращает true, если все подвыражения равны true |
| |
[if (IE 6)|(IE 7)] |
Оператор ИЛИ (OR). Возвращает true, если любое из подвыражений равно true. |
CSS против IE6/7/8
Сегодня в NETTUTS появилась коротенький совет для верстальщиков – как различать в CSS IE6 и IE7 с помощью всего двух символов * и _. Это самый просто хак для ИЕ. Надеюсь понятно что эти два правила нужно располагать именно в таком порядке – сначала правило с “*”, потом “_”.
Однако всё это не способствует прохождению валидации файла стилей. Честно говоря в своих немногочисленных работах никогда не пользуюсь хаками – либо использую условные комментарии (для IE), либо “не судьба” – точнее приходится решать проблемы другими способами или отказываться от чего-то.
Условные комментарии для IE стали доступны с 5-й версии Internet Explorer и поддерживаются только Internet Explorer-ом.
Официальная документация – условные комментарии на MSDN.
Синтаксис условных комментариев