it-swarm.com.ru

Нужен взлом только для ie9

Есть ли взлом только для IE9? Я сталкиваюсь с проблемой только в IE9, другие браузеры работают нормально. Я использую \9, но это влияет и на IE8.

Я не хочу использовать условные комментарии.

10
supersaiyan

Вы можете использовать этот :root #element { color:pink \0/IE9; } /* IE9 + IE10pp4 */

21
sandeep

Я придумал медиа-запрос, который делает это также. Указывает только IE9. 

@media all and (min-width:0\0) and (min-resolution:.001dpcm)
{
    #div { color:red; }
}

Другие, которые я разработал, включая медиа-запрос msie 9+, находятся на моей странице github: https://github.com/jeffclayton/css_hack_testing - большинство из них я отправил на browserhacks.com для включения.

2017 ОБНОВЛЕНИЕ: чтобы увидеть, как это работает, я создал живую тестовую страницу для этой и многих других, над которыми я работал http://browserstrangeness.bitbucket.io/css_hacks.html и MIRROR: http : //browserstrangeness.github.io/css_hacks.html

Имейте в виду, что это минимальная ширина: 0\0 (ноль-обратный слеш-ноль), когда вы копируете код на свой собственный сайт. Не путать с min-width: 0 (только один ноль), который не работает, чтобы отличить IE9 от других браузеров.

14
Jeff Clayton

Есть другой способ! 

:root #div { background: #fff \0/IE9; }  /* IE9 */

Используйте :root селектор psuedo. Это работает, потому что часть @media all and (min-width:0) была удалена в пользу этого метода в IE9. 

Имейте в виду, однако, что это не безопасный метод, поскольку он не работает на всех селекторах. Лучше всего использовать условные комментарии, это самый безопасный, простой и лучший способ нацеливаться на разные версии Internet Explorer, кроме IE10, в котором прекращена поддержка условных комментариев.

5
Kyle

В моем IE9 EMULATOR ни одно из перечисленных решений не сработало. Единственный хак, который правильно позволил нам изменить размер, например, флажок в IE9, был:

/* IE9 */
:root input#my-checkbox {
    width:20px !important \ ;
    height:20px !important \ ;
    box-sizing:content-box !important \ ;
}

Я не знаю если это также влияет на IE8 или IE10 и т.д., Но у нас все равно есть условия, которые обрабатывают их отдельно.

Надеюсь, это кому-нибудь поможет.

0
cbmtrx