IE8 CSS селектор - PullRequest
       69

IE8 CSS селектор

45 голосов
/ 19 марта 2009

Для таргетинга элементов только в браузерах IE я буду использовать

IE6:

* html #nav li ul {
    left: -39px !important;
    border: 1px solid red;
}

IE7:

*+html #nav li ul  {
    left: -39px! important;
}

Кто-нибудь знает, как нацелиться на IE8?

Ответы [ 14 ]

3 голосов
/ 07 июля 2010

Я понимаю, что это старый вопрос, но это был первый результат в Google, когда я искал, и я думаю, что нашел лучшее решение, чем предложение с наивысшим рейтингом и то, что ОП решил сделать.

#nav li ul:not(.stupidIE) { color:red }

Так что технически это противоположно тому, что хотел OP, но это просто означает, что вы должны сначала применить правило, которое вы хотите для IE8, а затем применить это для всего остального. Конечно, вы можете поместить что-либо в (), если это действительный CSS, который ничего не выбирает. IE8 душит эту строку и не применяет ее, но предыдущие IE (хорошо, я только проверил IE7, я перестал заботиться о IE6), просто проигнорируйте: not () и примените объявления. И, конечно, любой другой браузер (я тестировал Safari 5, Opera 10.5, Firefox 3.6) применяет этот CSS, как и следовало ожидать.

Так что это решение, я думаю, как и любое другое решение на чистом CSS, предполагает, что если разработчики IE добавят поддержку селектора: not, тогда они также исправят все несоответствия, которые заставляли вас ориентироваться на IE8.

2 голосов
/ 22 июля 2009

ОК, так что это не взлом css, а из-за разочарования из-за невозможности найти способы нацеливания на ie8 из css, и из-за политики отсутствия конкретных файлов CSS, я должен был сделать следующее, что я предположим, что кому-то еще может пригодиться:

if (jQuery.browser.version==8.0) {
   $(results).css({
         'left':'23px',
         'top':'-253px'
      });
}
1 голос
/ 30 декабря 2010

\ 9 не работает с font-family , вместо этого вам нужно использовать « \ 0 /! Важный », как упомянул Крис выше, например:

p { font-family: Arial \0/ !important; }
0 голосов
/ 21 июня 2014

Для IE8 нет селекторных хаков. Лучший ресурс для этой проблемы - http://browserhacks.com/#ie

Если вы хотите настроить таргетинг на конкретный IE8, вы должны сделать комментарий в html

<!--[if IE 8]> Internet Explorer 8 <![endif]-->

или вы можете использовать атрибуты хаков, такие как:

/* IE6, IE7, IE8, but also IE9 in some cases :( */
#diecinueve { color: blue\9; }

/* IE7, IE8 */
#veinte { color/*\**/: blue\9; }

/* IE8, IE9 */
#anotherone  {color: blue\0/;} /* must go at the END of all rules */

Для получения дополнительной информации об этой проверке: http://www.paulirish.com/2009/browser-specific-css-hacks/

...