Search code examples
cssinternet-explorer-8css-selectorsselectivizr

Chained pseudo-selectors in IE8


Chained pseudo-selectors do not seem to work in IE8 on Windows XP. Is there any documentation about this?

I'm developing a website using Selectivizr in order to use CSS3 selectors, but a style such as this doesn't work in IE8, whereas it works everywhere else (unsurprisingly):

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

Solution

  • This is not a bug, it's due to the fact the the selector doesn't match natively.

    A simple selector is either a type selector or universal selector followed immediately by zero or more attribute selectors, ID selectors, or pseudo-classes, in any order. The simple selector matches if all of its components match.

    The simple selector in this case is either span:first-child, which matches natively in IE8, or span:last-child, which does not.

    One pseudo-element may be appended to the last simple selector in a chain, in which case the style information applies to a subpart of each subject.

    Appending :after to span:first-child is a match, while appending it to span:last-child is not, and since Selectivizr is a post-processor, it comes too late to save the day. Perhaps a pre-processor would have better luck.