CSS3 Tests: Compatibility Tables

Compatibility information on CSS3 Selectors.

Overview

CSS3 support is what I expected it to be: iffy. I was suprised because Mozilla 1.7 RC 1 and Safari 1.2 are the most advanced in CSS3, and Opera, who has always had excellent CSS support, has a lot of catching up to do (though it does support box-sizing). Explorer doesn’t support one bit of CSS3.

Selectors

Please see the Key to these compatibility tables.
SelectorIE 6Firefox 0.8Mozilla 1.7 RC 1Safari 1.2Opera 7.50

^ Selector

Selects an element whose attribute begins with a certain string.
» Test Page
NoYesYesYesNo
Attribute selectors are the most widely supported bits of CSS3.
 

$ Selector

Selects an element whose attribute ends in a certain string.
» Test Page
NoYesYesYesNo
 

* Selector

Selects an element whose attribute has a certain sustring in its value.
» Test Page
NoYesYesYesNo
 

~ Selector

Selects an element that is a previous sibling of another element.
» Test Page
NoNoYesNoNo
This doesn’t work in the first few builds of 1.7b.
 

Pseudo-Classes

Pseudo ClassIE 6Firefox 0.8Mozilla 1.7 RC 1Safari 1.2Opera 7.50

:contains

Selects an element with certain text contents.
» Test Page
NoNoNoNoNo
Example syntax: h2:contains("Welcome") would select any h2 with "Welcome" as its inner text.
 

:selection

Selects an element whose text is selected.
» Test Page
NoNoNoYesNo
 

:enabled/:disabled

Selects form fields that are enabled or disabled.
» Test Page
NoNoNoNoNo
 

:nth-child()

Selects a certain child of an element.
» Test Page
NoNoNoNoNo
The Argument for this is the child's index number, like body:nth-child(2) would select the body's second child. The test page uses even and odd, which are also acceptable arguments.
 

:value()

Selects a form element with a certain value.
» Test Page
NoNoNoNoNo
I don't see a need for this at all, when you can just use input[value="whatever"].
 

::marker()

Apply styles to list item markers.
» Test Page
NoNoNoNoNo
The styles set for this apply to the actual marker, not the LI itself. To render the test page correctly the browser must also support the counter-increment declaration.
 

:not()

Negation of a selector.
» Test Page
NoYesYesYesNo
The test page has input:not([DISABLED]) which means it selects all input fields that aren’t selected.
 

Declarations

CSS3 adds some new and useful declarations. Support is limited though…
DeclarationIE 6Firefox 0.8Mozilla 1.7 RC 1Safari 1.2Opera 7.50

Opacity

Make an element opaque.
» Test Page
NoNoYesYesNo
The value for this must be a fraction, like .5.
 

border-image

Use an image as a border.
» Test Page
NoNoNoNoNo
 

box-shadow

Give shadows to arbitrary boxes.
» Test Page
NoNoNoNoNo
 

List Styles

New CSS3 List Style types.
» Test Page
NoNoNoNoMinimal
Opera 7 and Explorer 5 Mac only support list-style-type: box;. All other browsers support none of the new styles.
 

caption-side

Position of table caption.
» Test Page
NoYesYesYesYes
I know this is CSS2 but I tested this anyway.
 

min-/max-font-size

Set a minimum or maximum font size.
» Test Page
NoNoNoNoNo
 

Text styles

Extensions to text styles.
» Test Page
NoNoNoNoNo
This is complicated. See the test page and CSS3 Text Module for more details.
 

Appearance

Give an element a certain appearnce.
» Test Page
NoAlternative AlternativeNo No
This is supposed to give a block level element the appearnce of miscellaneous things on the users computer. Possible values include tooltip and push-button.
• Mozilla supports -moz-appearance, but only on Windows XP and Mac OS X.
 

Font Appearance

Give fonts special appearances.
» Test Page
YesYesYesAlmostYes
This is also CSS2 but included in CSS3 UI. Fonts can have values like font: 13px status-bar bold;, which would make the text have the same font-family as the computer’s status bar. See the spec for more.
• Safari 1.2 doesn’t support the “status-bar” value.
 

box-sizing

This is used to switch Box Models.
» Test Page
NoAlternative AlternativeNo Yes
Use this to switch from the bad box model to the right one with box-sizing: border-box.
• Explorer 5 Mac supports this as well.
• Mozilla needs -moz-box-sizing.

icon

Replace elements with icons.
» Test Page
NoNoNoNoNo
With this you can replace elements with the icon property and display: icon. The UA must support both to properly render the icon.
• Safari 1.2 information pending…
 

resize

Denote how an element can be resized.
» Test Page
NoNoNoNoNo
 

content

Overwrite content of an element.
» Test Page
NoNoNoNoYes
In CSS2, content could only be applied to before or after the element. In CSS3 you can assign content to the element itself.
 

text-shadow

Apply shadows to text (obviously)
» Test Page
NoNoNoYesNo
 

Background Properties

A compatibility table of new background properties.

DeclarationIE 6Firefox 0.8Mozilla 1.7 RC 1Safari 1.2Opera 7.50

background-clip

Should the background go into the padding and border areas?
» Test Page
NoNoNoNoNo
 

background-size

Specify a size for the background.
» Test Page
NoNoNoNoNo
 

background-quantity

How many times should the background image repeat?
» Test Page
NoNoNoNoNo
 

background-spacing

Specify a space between background images.
» Test Page
NoNoNoNoNo
 

Safari 1.2

I don't have my own Mac to test on, so I will be glad to receive Safari 1.2 Compatibiltiy info. Just email me.