Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

IE 10 CSS hack

Придумал CSS-хак для Эксплорера 10-й версии, срабатывающий только в режиме совместимости, похоже, что все существующие хаки в нём не работают.

@media , {
    .:valid, body {
        background: red; /* будет красным в Internet Explorer 10 (режим совместимости) */
    }
}

Проверил при помощи сайта «Браузер шотс» ложные срабатывания, как будто всё в порядке, их нет. Не проверял на IE11, не знаю будет ли там работать. Если у кого-то под рукой есть, напишите в комментариях, пожалуйста, интересно же. Ну и под другими браузерами всё равно будет нелишним проверить, напишите срабатывает или нет.

Так же придумал новый хак для обычного режима IE 10:

@media all\0 {
    _:valid, body {
        background: red; /* будет красным в IE 10 */
    }
}

И ещё один:

_:valid\0, body {
    background: green; /* будет зелёным в IE10 */
}

Так же не тестировал на IE11 (мне негде).

33 комментария
? 2013

@media screen and (-ms-high-contrast: active), screen and (-ms-high-contrast: none)

? 2013

Это для IE10 и выше.

Евгений Степанищев (bolknote.ru) 2013

Комментарий для ?:

Я уже написал:

все прежде найденные хаки уже не работают в Windows 7.

Указанный хак у меня не сработал.

Михаил Калашник (splurov.livejournal.com) 2013

А ты как проверял? У меня не воспроизводится в IE 10: http://pastebin.com/Ti84MF2h

Евгений Степанищев (bolknote.ru) 2013

Комментарий для splurov.livejournal.com:

Как-как, открыл в IE10 и проверил :) ОС какая? У меня — Windows 7 (в «Параллельсе» запущена).

Евгений Степанищев (bolknote.ru) 2013

Комментарий для splurov.livejournal.com:

Ой, нет. У меня Windows 8.

Евгений Степанищев (bolknote.ru) 2013

Комментарий для splurov.livejournal.com:

Попробуй комментарий нормальный сделать (я сейчас код поправил), может из-за него не работает.

Михаил Калашник (splurov.livejournal.com) 2013

Комментарий для Евгения Степанищева:

https://www.dropbox.com/s/993c15is9zb3wqb/Screenshot%202013-10-15%2021.37.38.png

Евгений Степанищев (bolknote.ru) 2013

Комментарий для splurov.livejournal.com:

А ОС-то какая?

Евгений Степанищев (bolknote.ru) 2013

Комментарий для splurov.livejournal.com:

А, вон, вижу. Так, может дело в битности?

Евгений Степанищев (bolknote.ru) 2013

Комментарий для splurov.livejournal.com:

Я переделал немного: http://jsfiddle.net/M59r2/

Так красный?

Михаил Калашник (splurov.livejournal.com) 2013

Комментарий для Евгения Степанищева:

ОС 32-битная, а во втором примере и в Фаерфоксе и в ИЕ 10 красный :)

mihdan 2013

То есть ни один из этих http://www.kobzarev.com/makeup/ie10-css-hacks.html хаков у вас не работает в ИЕ10? У меня Win7x64 — полет нормальный

MiRacLe (miracle.rpz.name) 2013

«Что-то пошло не так (ц)»: http://goo.gl/dXx90a

Евгений Степанищев (bolknote.ru) 2013

Комментарий для mihdan:

То есть ни один из этих http://www.kobzarev.com/makeup/ie10-css-hacks.html хаков у вас не работает в ИЕ10?

Там два хака всего. И что-то странное. Через jsfiddle они работают, локально — нет. Мой же — наоборот. Ничего не понимаю.

Евгений Степанищев (bolknote.ru) 2013

Я разобрался. Почему-то у меня браузер в режим совместимости всё время переключается. Вот как раз мой хак в нём работает, как оказалось, а те хаки в нём не работают.

Евгений Степанищев (bolknote.ru) 2013

Интересно, что при загрузки файла с файловой системы IE10 как раз переходит в такой режим. Вот поэтому я и получил такие результаты.

Евгений Степанищев (bolknote.ru) 2013

Комментарий для splurov.livejournal.com:

С первым всё стало понятно, а попробуйте второй хак?

www.google.com/accounts/o8/id?id=AItOawkmdzzujYcqeGd4ggCD2zyPVZ2LJavnDcg 2013

Все приведённые варианты ложно срабатывают в 64-хбитной версии Линукса в Опере.

www.google.com/accounts/o8/id?id=AItOawkmdzzujYcqeGd4ggCD2zyPVZ2LJavnDcg 2013

Уф, как у вас туннелирование OpenID провайдера на Google жутко срабатывает.

Евгений Степанищев (bolknote.ru) 2013

Комментарий для www.google.com/accounts/o8/id?id=AItOawkmdzzujYcqeGd4ggCD2zyPVZ2LJavnDcg:

Все приведённые варианты ложно срабатывают в 64-хбитной версии Линукса в Опере.

Какая версия «Оперы»?

Уф, как у вас туннелирование OpenID провайдера на Google жутко срабатывает.

Это вы жуткий OpenID подставляете. Это специальный «анонимный» гугловский OpenID.

wargot.com/ 2013

Не взлетело у меня
ОС 64х битная

http://prntscr.com/1xn1g1

Михаил Калашник (splurov.livejournal.com) 2013

Комментарий для Евгения Степанищева:

Первый в Compat и у меня краснеет.
Второй ( http://jsfiddle.net/JXwSz/ ) и третий ( http://jsfiddle.net/TtpG6/ ) работают и в IE 10 и в IE 11 (в обычном режиме).

Евгений Степанищев (bolknote.ru) 2013

Комментарий для http://wargot.com/:

Не взлетело у меня
ОС 64х битная

Режим совместимости включён?

Евгений Степанищев (bolknote.ru) 2013

Комментарий для http://wargot.com/:

Ну и код у вас неправильный.

? 2013

Режим совместимости же не в счет, нужен именно IE10 и выше, разве нет? В режиме совместимости включается эмулятор версий ниже, это же то же самое, что искать хак для IE9, или я ошибаюсь?

Евгений Степанищев (bolknote.ru) 2013

Комментарий для ?:

Для первого хака нужен IE10 в режиме совместимости.

Виталий Сергеев 2013

Зря, зло это!
Лучше по юзер агенту на боди класс-модификатор навесить, если уж очень хочется проснифать, в топку хаки

Виталий Сергеев 2013
Евгений Степанищев (bolknote.ru) 2013

Комментарий для Виталий Сергеев:

Лучше по юзер агенту на боди класс-модификатор навесить, если уж очень хочется проснифать, в топку хаки

В топку класс-модификатор.

3 2013

<!-​-​[if IE]> <style> * {font-family: «Comic Sans»;} </style> <![endif]-​-​>

Евгений Степанищев (bolknote.ru) 2013

Комментарий для 3:

У меня для вас плохая новость: это не работает под IE10.