Другие браузеры правы; IE6 не так.
Селектор a
должен соответствовать любым элементам <a>
, тогда как a:link
соответствует только <a>
элементам, которые являются невидимыми гиперссылками (тип документа HTML 4 определяет гиперссылки как <a>
элементов с href
атрибут). В спецификации нигде не указано, что a
должен автоматически переводиться в a:link
или наоборот.
Поскольку такого перевода не происходит, ваши два правила CSS имеют одинаково специфичные селекторы (ваш селектор классов имеет одинаковую специфичность с каждым ваших псевдоклассов). Итак, ваше второе правило должно переопределять первое правило для любых элементов <a>
в пределах div.myclass
, независимо от их состояния ссылки, что делает его всегда красным и без оформления текста.
Кстати, IE7 также не может применить стиль font-weight: bold
, когда вы тестируете с элементом <a>
в div.myclass
, который не является ссылкой, даже если предполагается, что нет переопределения font-weight
стиль в вашем втором правиле:
<div class="myclass">
<p>This is a <a href="2">test</a></p>
<p>This is a <a>test</a></p> <!-- does not bold on hover in IE7! -->
</div>