

CSS Selectors and Pseudo Selectors and browser support
source link: https://kimblim.dk/css-tests/selectors/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

CSS selectors and pseudo selectors browser compatibility
This page has not been updated for some time and some of the browser versions are obsolete - I'm working on a better format for the page, so check back every now and then :)
The following is a range of CSS tests of the most common browsers' support for selectors and pseudo selectors. The tests includes basic stuff from the good old days of CSS1 and funky stuff from the future (CSS3). If you feel like reading more about the selectors and which attributes they support, the W3C is the place to go!
If you spot any errors (it happens to us all...) or have any comments, I'm on Twitter as @overflowhidden.
Click here to see this page's history.
CSS 1 ↓ Selector / Browser → IE6 IE7 IE8 IE9 preview FF 3 FF 3.5 FF 3.6 Safari 3 Safari 4 Chrome 5 beta Opera Opera 10.5 beta ↑ Selector / Browser → IE6 IE7 IE8 IE9 preview FF 3 FF 3.5 FF 3.6 Safari 3 Safari 4 Chrome 5 beta Opera Opera 10.5 beta E Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E F Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes :link Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E:active Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E:visited Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E:first-line No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E:first-letter No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E.classname Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E#id Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes .classname.classname No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes CSS 2.1 ↓ Selector / Browser → IE6 IE7 IE8 IE9 preview FF 3 FF 3.5 FF 3.6 Safari 3 Safari 4 Chrome 5 beta Opera Opera 10.5 beta ↑ Selector / Browser → IE6 IE7 IE8 IE9 preview FF 3 FF 3.5 FF 3.6 Safari 3 Safari 4 Chrome 5 beta Opera Opera 10.5 beta * Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E > F No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E:first-child No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E:hover Partial (1) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E:focus No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E + F No Yes Yes Yes Yes Yes Yes Yes Yes Buggy (5) Yes Yes E[attr] No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E[attr="name"] No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E[attr~="name"] No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E:before No No Yes Yes Buggy (4) Yes Yes Yes Yes Yes Yes Yes E:after No No Yes Yes Buggy (4) Yes Yes Yes Yes Yes Yes Yes CSS 3 ↓ Selector / Browser → IE6 IE7 IE8 IE9 preview FF 3 FF 3.5 FF 3.6 Safari 3 Safari 4 Chrome 5 beta Opera Opera 10.5 beta ↑ Selector / Browser → IE6 IE7 IE8 IE9 preview FF 3 FF 3.5 FF 3.6 Safari 3 Safari 4 Chrome 5 beta Opera Opera 10.5 beta E ~ F No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E[attr^="name"] No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E[attr$="name"] No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E[attr*="name"] No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E[attr|="name"] No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes E:root No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes E:nth-of-type No No No Yes No Yes Yes Yes Yes Yes Yes Yes E:nth-last-of-type No No No Yes No Yes Yes Yes Yes Yes Yes Yes E:first-of-type No No No Yes No Yes Yes Yes Yes Yes Yes Yes E:last-of-type No No No Yes No Yes Yes Yes Yes Yes Yes Yes E:only-of-type No No No Yes No Yes Yes Yes Yes Yes Yes Yes E:only-child No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes E:last-child No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes E:nth-child No No No Yes No Yes Yes Yes Yes Yes Yes Yes E:nth-last-child No No No Yes No Yes Yes Yes Yes Yes Yes Yes E:empty No No No Yes Yes Yes Yes Buggy (2) Yes (3) Yes Yes Yes E:target No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes E:checked No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes E::selection No No No Yes No No No Yes Yes Yes Yes Yes E:enabled No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes E:disabled No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes E:not(s) No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes:hover
only works fora
-elements in IE6.E:empty
seems to have some buggy behaviour in webkit-based browsers.- Not sure how to test if this is still buggy.
- Tim has informed that the
:before
and:after
selectors are buggy in Firefox versions before 3.5. Apparently they do not allow inserted elements to have fixed width/height or absolute positioning. I haven't checked this out myself. Thanx, Tim! Update: It certainly seems as if Tim is right - in Nicolas Gallaghers great demo about multiple backgrounds using CSS2.1, he also points this out. - It seems that Chrome (at least on a Mac) has some issues with the adjacent selectors - I've created a test page to demonstrate it. It does not seem to be a Webkit issue, as Safari has no issues with this.
:checked
test. Seems as if Firefox does support the selector, it just doesn't support red borders on checkboxes...
2007.03.16: Added :checked
test
2007.01.12: I have added Konqueror 3.5.5 - which aces all the tests!
2007.01.09: I have added Firefox 2.0.0.1
2007.01.04: Added :nth-child
test
2007.01.04: Improved the examples for :min-width
and :max-width
.
2007.01.02: I have added Opera 9.10 and there are some stats at the bottom of the page now...
2006: Created...
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK