IE6 допускает комбинированные классы, но не определяет приоритеты по специфике. Под этим я подразумеваю, что если вы попытаетесь применить один и тот же атрибут стиля в нескольких классах, он будет применяться к элементу в том порядке, в котором классы перечислены в таблице стилей, а не по наследству применяемых классов.
Например,
, в этом случае текст будет выглядеть так, как ожидалось, т. Е. Пункт 2 выделен синим цветом:
<html>
<head>
<style type="text/css">
.style1 {
color:red
}
.style1.selected {
color:blue
}
</style>
</head>
<body>
<p class="style1">paragraph 1</p>
<p class="style1 selected">paragraph 2</p>
</body>
</html>
однако, если порядок классов поменялся местами, как показано ниже, оба пункта 1 и 2 выделены красным цветом:
<html>
<head>
<style type="text/css">
.style1.selected {
color:blue
}
.style1 {
color:red
}
</style>
</head>
<body>
<p class="style1">paragraph 1</p>
<p class="style1 selected">paragraph 2</p>
</body>
</html>
так что комбинированный класс применяется, как и исходный простой класс, то есть последний класс, которому соответствует элемент, является тем, который его стилизует, если классы применяют одни и те же атрибуты.
Итак, вы можете заставить ваши классы CSS вести себя так, как вы ожидаете, упорядочив их. Но это может работать не во всех случаях, в зависимости от того, как вы хотите применить классы. Единственный верный способ исправить это в IE6 - использовать javascript для добавления и удаления классов css для определенных событий, что немного неуклюже.