Есть ли умный способ не запускать CSS3Pie на определенных версиях IE с использованием классов? - PullRequest
0 голосов
/ 21 октября 2011

Я пытаюсь заставить css3pie НЕ работать в ie7 для определенного класса.Я использую HTML5 Boilerplate, чтобы дать мне определенные классы IE для использования.То, что я пытался сделать, это

.ie7 .classname {
 position: absolute;
 background: #000;
}
.classname {
  css3pie: stuff;
  position: relative
  background: #fff;
}

Но, похоже, это не работает, css3pie все еще обрабатывается.

Кто-нибудь знает, что еще я мог бы попытаться не запускать исправления css3pie?

Ответы [ 3 ]

1 голос
/ 21 октября 2011

Если вы используете версию поведения PIE (pie.htc) для DHTML, объявляйте поведение только для тех элементов, которые вам нужны. В моем случае у меня есть класс pie, который я добавляю к элементам, которым требуется круговая диаграмма, а затем объявляю свой CSS следующим образом:

.pie { behavior: url(pie.htc); }

В вашем случае вы можете сделать это:

.ie6 .pie, .ie8 .pie, .ie9 .pie { behavior: url(pie.htc); }

Или настройте условные комментарии, чтобы добавить класс .ienot7 в IE 6, 8 и 9:

<!--[if lt IE 7 ]> <html class="ie6 ienot7"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8 ienot7"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9 ienot7"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->
.ienot7 .pie { behavior: url(pie.htc); }
0 голосов
/ 21 октября 2011

Установить behavior: '' только в IE7.Например:

.classname {
    behavior: url(pie.htc);
}
.ie7 .classname {
    behavior: '';
}

Это хорошо, потому что изменения HTML не нужны.

0 голосов
/ 21 октября 2011

У меня сложилось впечатление, что вам нужно было явно применить css3pie к объявлениям, которые вы хотите обрабатывать, например:

.border-radius-5 {
    -webkit-border-radius : 5px;
    -moz-border-radius : 5px;
    border-radius : 5px;
    position:relative;
    behavior: url(/css/PIE.htc);
} 
...