Удалить / сбросить свойство поведения CSS - PullRequest
33 голосов
/ 23 декабря 2010

Можно ли удалить CSS-свойство поведения, специфичное для IE, с помощью более конкретного правила или объявления !important?Пример:

.a-rule
{
  behavior: url(/some.htc);
}
.a-rule.more-specific
{
  behavior: /*no HTC*/
}

Я понимаю, что переопределение свойств CSS нежелательно, но я застрял здесь.

При редактировании : я не уверен, где людизапутаться по этому вопросу.Для всех целей вы можете считать, что это уже специфичная для IE таблица стилей.Я спрашиваю, как, если .a-rule выше существует и является неизменным, как можно удалить поведение с помощью более конкретного правила?Стандартным эквивалентом CSS будет:

.a-rule
{
  border: 1px solid black;
}
.a-rule.more-specific
{
  border: 0 none;
}

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

Ответы [ 3 ]

41 голосов
/ 24 декабря 2010

Значением по умолчанию является «none». См:

Каков * правильный * способ удалить свойство поведения в CSS?

Решение:

.a-rule
{
  behavior: url(/some.htc);
}
.a-rule.more-specific
{
  behavior: none;
}
0 голосов
/ 23 декабря 2010
.a_rule {
  border: 1px solid black; /* we know border is black */
  behavior: url(/some.htc) /* we know something happen inside some.htc */
}
 .a_rule.more-specific {
  border: 0 none; /* we remove the border */
  behavior: url(/some.htc) /* we remove something inside some.htc */
}

использовать другой .htc файл

0 голосов
/ 23 декабря 2010

Возможно, используйте условные теги для IE в вашей голове

<!--[if IE]>
<style type="text/css">
    .a-rule {
       behavior: url(/some.htc);
    }
</style>
<![endif]-->
...