Internet explorer IE中的多类CSS继承问题

Internet explorer IE中的多类CSS继承问题,internet-explorer,css-selectors,internet-explorer-9,css,Internet Explorer,Css Selectors,Internet Explorer 9,Css,我有一个名为“.spr”的类(用于图像精灵)和许多改变宽度、高度和背景位置属性的类,以显示精灵的各个部分 我还有“.on”类在“开”或“关”状态下显示的图像之间切换 问题是,在IE中,应该与某个类关联的“on”类被应用到一个按钮上,而该按钮没有关联的类(但有一个不同的类) 屏幕截图: CSS: .spr.burst.been {background-position: -241px -89px; .spr.burst.on { background-position: -301px

我有一个名为“.spr”的类(用于图像精灵)和许多改变宽度、高度和背景位置属性的类,以显示精灵的各个部分

我还有“.on”类在“开”或“关”状态下显示的图像之间切换

问题是,在IE中,应该与某个类关联的“on”类被应用到一个按钮上,而该按钮没有关联的类(但有一个不同的类)

屏幕截图:

CSS:

.spr.burst.been {background-position: -241px -89px;
  .spr.burst.on {
    background-position: -301px -89px !important; }

  .spr.radiobutton {background-position: -250px -249px; }
    .spr.radiobutton.on {
background-position: -250px -218px;
      border: 3px dashed red; }
如您所见,IE9解释了类

.spr.radiobutton.on 
作为

而且,由于它出现在样式表的后面,因此会覆盖

.spr.burst.on
即使

没有课

.radiobutton

如何在IE中正确应用这些复合样式?

如果您的页面没有正确的doctype声明,IE9将进入怪癖模式,并像IE5/IE6一样处理链式类选择器:并相应地应用规则

因此,选择器
.spr.radiobutton.on
实际上被解释为
.on
(而不是
.spr.on
),覆盖了它认为只有
.on
选择器的早期规则


只要给您的文档一个doctype声明,IE9就会按预期运行。

您有文档可以尝试此操作吗?始终添加doctype声明,无论浏览器如何。;)只是帮我省去了一些头痛。。。非常感谢。IE9对于退回到IE6选择器解析>,是非常悲观的。这正是我想要的!几个小时以来,我一直在想为什么ie9是cccccr@p作为ie6!
.spr.burst
.radiobutton