这也可能适用于IE7,但我不确定。我有以下CSS:Internet Explorer 8中的CSS伪类
div#sidebar-right a.menu-item img:nth-child(1),
div#sidebar-right a.menu-item > *:first-child {
position: relative;
left: 11px;
top: 37px;
z-index: 10;
opacity: 0;
-webkit-transform: rotate(6deg);
-moz-transform: rotate(6deg);
-webkit-transition-property: top, opacity, -webkit-transform;
-webkit-transition-duration: 0.2s, 0.3s, 0.5s;
-webkit-transition-timing-function: linear, linear, ease-in;
-moz-transition-property: top, opacity, -moz-transform;
-moz-transition-duration: 0.2s, 0.3s, 0.5s;
-moz-transition-timing-function: linear, linear, ease-in;
}
div#sidebar-right a.menu-item:hover img:nth-child(1),
div#sidebar-right a.menu-item:hover > *:first-child {
top: -6px;
opacity: 1;
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
}
div#sidebar-right a.menu-item img:nth-child(2),
div#sidebar-right a.menu-item > *:first-child + * {
position: relative;
z-index: 11;
top: -63px;
}
div#sidebar-right a.menu-item.home-menu:hover img:nth-child(2),
div#sidebar-right a.menu-item.home-menu:hover > *:first-child + * {
top: -100px;
}
div#sidebar-right a.menu-item.code-menu:hover img:nth-child(2),
div#sidebar-right a.menu-item.code-menu:hover > *:first-child + * {
top: -97px;
}
div#sidebar-right a.menu-item.game-menu:hover img:nth-child(2),
div#sidebar-right a.menu-item.game-menu:hover > *:first-child + * {
top: -101px;
}
div#sidebar-right a.menu-item.sports-menu:hover img:nth-child(2),
div#sidebar-right a.menu-item.sports-menu:hover > *:first-child + * {
top: -98px;
}
div#sidebar-right a.menu-item.the-nation-menu:hover img:nth-child(2),
div#sidebar-right a.menu-item.the-nation-menu:hover > *:first-child + * {
top: -98px;
}
由于某种原因,这个CSS在IE8中没有被拾取。我知道IE8中不支持第n个孩子,但是第一个孩子在这里也被列为规则。有什么想法吗?真令人费解的是,这条规则不仅没有被应用,反而只是没有出现。如果您查看CSS选项卡下的开发人员工具视图,则可以逐字滚动浏览整个内容,而不会看到其中的任何规则。很混乱。
':nth-child()'和':first-child'是伪类,而不是伪元素。 IE7不支持任何CSS2伪元素,但它支持一些CSS2伪类,比如':first-child'。这是一个微妙但重要的区别:) – BoltClock
感谢您的语法分析。我实际上知道这一点,但只是在写这个主题的时候头脑放松。 –