2012-07-20 52 views
1

链式伪选择器似乎在Windows XP上的IE8中不起作用。有没有关于这方面的文件?IE8中的链式伪选择器

我发展,以使用CSS3选择使用Selectivizr一个网站,而是一种风格,例如,这并不在IE8中工作,而它的工作原理其他地方(不出所料):

span:last-child:after {content: "foobar";} 
+0

您将一个CSS2伪元素链接到一个CSS3伪类,而不是链接两个伪选择器。尽管如此,仍然很奇怪 - 在你的样式表中使用'span:last-child'或'span:after'规则工作吗? – BoltClock 2012-07-20 11:28:54

+0

感谢您的更正@BoltClock谢天谢地,我的问题仍然被理解。我已经测试过和':最后一个孩子'的工作,但我不知道如何单独测试':after'。这适用于IE9和WebKit,我也假设在Firefox中。 – Daze 2012-07-20 17:45:39

+0

你可以简单地制定一个规则,说'span:after {content:“test”;}'看看它是否在IE8中有效。 (应该)。 – BoltClock 2012-07-20 20:31:01

回答

1

这不是一个错误,这是因为选择器本身不匹配。

一个简单的选择器是一个类型选择器或通用选择器,后面紧跟着零个或多个属性选择器,ID选择器或伪类,以任何顺序。如果所有组件都匹配,简单选择器就会匹配。

在这种情况下,简单的选择是要么span:first-child,其本身在IE8相匹配,或span:last-child,其没有。

一个伪元素可以被附加到在链中的最后简单选择器,在这种情况下,样式信息应用到每个对象的子部分。

追加:afterspan:first-child匹配,同时其附加到span:last-child不是,因为Selectivizr是一个后置处理器,它来得太晚保存一天。也许预处理器会有更好的运气。