Back to the index.
CSS2 selectors | CSS3 selectors | CSS3 UI selectors | CSS4 selectors
Here are almost all CSS2 and 3 selectors, and the CSS3 UI selectors (mostly structural pseudo-classes).
This is the mobile table. See also the desktop table.
Last major update on 16 February 2013.
Even though the Symbian Anna browser supports web standards fairly well, it crashed three times during my testing.
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
p
|
Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
p.test
|
Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
p#test
|
Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
p span
|
Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Selects all elements | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Two or more class names | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| Selects an element that is a child of another element | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Selects an element that is a next sibling of another element | Yes | Yes | Yes | Yes | Static | Yes | Yes | Buggy | Yes | |||||||||||||||
|
||||||||||||||||||||||||
| Selects an element that is a general next sibling of another element | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | ||||||||||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| Selects an element with a certain attribute | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Selects an element with a certain attribute value | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Selects an element with an attribute that includes a certain value; space-separated | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Selects an element with a certain attribute that starts with a certain value | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Selects an element with a certain attribute that ends with a certain value | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Selects an element with a certain attribute that contains a certain value; not necessarily space-separated | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Attribute value starts with "value" or "value-" | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
|
I did not test IE5-6, but assume they don’t support it. |
||||||||||||||||||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| To generate content before and after an element | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| The first letter of an element | Almost | Almost | Yes | Almost | Almost | Almost | Yes | Almost | Almost | Buggy | No | Yes | ||||||||||||
|
||||||||||||||||||||||||
| The first line of an element | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Text selected by the user. | No | No | Yes | No | Yes | Yes | No | Untest |
No | Untest |
No | Untest |
Yes | Untest |
-moz- | |||||||||
|
|
||||||||||||||||||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| An element in an active state. | No | No | No | Yes | Yes | No | No | No | Yes | |||||||||||||||
|
Styles should be applied ontouchstart and removed ontouchend.
|
||||||||||||||||||||||||
| An element in a hovered state. | Special | Yes | Spe |
Yes | Desktop | Desktop | Yes | No | Yes | Yes | Yes | |||||||||||||
|
Normally the
|
||||||||||||||||||||||||
| Unvisited link | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Negation of a selector | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | ||||||||||||||||
Element that is a target of a hash (page.html#testHash)
|
Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Incom |
Yes | ||||||||||||||
|
||||||||||||||||||||||||
| Visited link | Yes | se | Yes | No | se | Yes | se | Yes | No | Yes | Yes | se | Yes | Yes | ||||||||||
|
There’s a security issue with |
||||||||||||||||||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| Empty elements | Yes | Yes | Yes | Yes | Static | Yes | Yes | Yes | ||||||||||||||||
|
|
||||||||||||||||||||||||
| An element that is the first child of its parent | Yes | Yes | Yes | Yes | Static | Yes | Yes | Yes | ||||||||||||||||
|
|
||||||||||||||||||||||||
| The first element of its type. | Yes | Yes | Yes | Yes | No | Static | Yes | Yes | Yes | |||||||||||||||
|
|
||||||||||||||||||||||||
| An element that is the last child of its parent | Yes | Yes | Yes | Yes | Buggy | Yes | Yes | Yes | ||||||||||||||||
|
||||||||||||||||||||||||
| The last element of its type. | Yes | Yes | Yes | Yes | No | Static | Yes | Yes | Yes | |||||||||||||||
|
|
||||||||||||||||||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| Select elements according to a formula | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | ||||||||||||||||
| Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | |||||||||||||||||
| Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | |||||||||||||||||
| Select elements according to a formula | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | ||||||||||||||||
| An element that is the only child of its parent | Yes | Yes | Yes | Yes | Static and buggy | Yes | Yes | Yes | ||||||||||||||||
|
||||||||||||||||||||||||
| The only element of its type. | Yes | Yes | Yes | Yes | No | Buggy | Yes | Yes | Yes | |||||||||||||||
|
||||||||||||||||||||||||
| The root element, or initial containing block. | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||||||||||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
See also the CSS3 User Interface spec.
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| Checked elements (checkboxes or radios) | Yes | No | Yes | No | Yes | No | No | Yes | No | Yes | No | Yes | No | Yes | No | |||||||||
| Default choices in select boxes or groups of radio buttons | No | No | No | Incom |
No | No | No | No | ||||||||||||||||
|
Tested on radio buttons and select boxes.
|
||||||||||||||||||||||||
| Disabled form fields | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | ||||||||||||||||
| Non-disabled form fields | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | ||||||||||||||||
| Form fields that have the keyboard focus | Yes | Yes | No | Yes | Yes | Yes | Don't know | Yes | No | Yes | Yes | No | Yes | |||||||||||
Sidenote: iOS5 doesn’t support labels. iOS6 does. One and Tizen don’t. |
||||||||||||||||||||||||
| Form fields with values that are in range (numbers) | Yes | No | Yes | No | Yes | No | Yes | No | Yes | No | No | Yes | ||||||||||||
Form field with value that does not conform to pattern
|
Yes | No | Yes | No | Yes | Yes | No | Yes | Yes | No | Yes | No | Yes | |||||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
| Non-required form fields | Yes | Yes | Buggy | Yes | Yes | No | Yes | No | Yes | Yes | No | Yes | ||||||||||||
|
||||||||||||||||||||||||
| Form fields with values that are not in range (numbers) | Yes | No | Yes | No | Yes | No | Yes | No | Yes | No | No | Yes | ||||||||||||
| Readonly form fields | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes | No | ||||||||||||||
| Non-readonly form fields | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes | No | ||||||||||||||
| Required form fields | Yes | Yes | No | Yes | Yes | No | Yes | No | Yes | Yes | No | Yes | ||||||||||||
Form field with value that conforms to pattern
|
Yes | No | Yes | Buggy | Yes | Yes | No | Yes | Yes | No | Yes | No | Yes | |||||||||||
|
||||||||||||||||||||||||
| Selector | iOS | Android | Chr | Opera | Black |
Nokia | Dol |
One | Tizen | Net |
UC | IE9 | Firefox | |||||||||||
| 5 | 6 | 2 | 3 | 4 | Mini | Mobile | 6 | 7 | PB | 10 | Sym |
S40 | Sym |
Xpress | Mee |
|||||||||
Mobile browser test array 1.0; February 2013
All these browsers are WebKit-based, with the exception of both Operas (still Presto), IE9 (Trident), and Firefox and Nokia Xpress (Gecko).
Opera Mini and Nokia Xpress are proxy browsers.
General note on One, NetFront, and UC: the browsers I test are not particularly representative for the actual browsers that are used in the wild. Though some may be default browsers on Asian Android devices, most of them get their market share from being pre-installed on feature phones. These installs are unlikely to use the same rendering engine I’m testing. This is the best I can do, though — and all these browser vendors definitely want to expand their market via Android.
Browsers by WebKit version