Results of my CSS tests

These are test pages that I have written for various reasons - usually to see whether certain features are implemented in any browsers or to test known features in certain browsers. They cover some sections of CSS2 much more completely than others. They are listed in order of the sections of CSS2 that they test. Warning: These tests may crash your browser or your whole computer. Use caution when testing.

Key

U Unknown (either because the test isn't written yet, I haven't tested that browser yet, or I don't know the correct result)
A Arguable due to ambiguities or differing interpretations of CSS specs (counts as unknown)
Y Yes. (i.e., entirely supported)
N Not Supported†
P Partially Supported†
B Buggy
BB Buggy in a way much more serious than the other browsers marked as buggy.
D Destroys feature. That is, it's not implemented, but buggy error handling causes bizarre interpretation. This rating is also given for total disappearance of content due to bugs.†
M Maybe (i.e, other bugs prevent proper testing). Often B is used instead of M.
C Crashes or hangs.
x Lowercase letters, such as b, show very minor bugs.
(X) I disagree with the spec, and the result would be different if the spec were the way I want it.

† - Not possible on tests of “basic features.”

The Results

Note: Not all of my test pages are listed here. Those not testable are listed below.

Note: Some of the rules for absolute positioning and clipping are expected to be changed in the near future. The current tests test the old rules, and the results for those tests are no longer being updated. However, they have not yet been removed from the chart.

Browser Mozilla (see notes) MSIE Opera MSIE MSIE Konqueror ICEBrowser Opera NNav WebTV Viewer[9] Specs Tested [2]
Version 2000-09-22 -20-M18 5.0 3.60 [5] 5.5 5.0 1.9.2 beta2 5.02 4.0 preview 3 4.61 & 4.5 2.0, b551
Platform Linux & Mac (& Windows) Mac Windows Windows Windows Linux Java (Linux) Linux Linux & Windows[6] Windows
Status Beta Release Release Release Release Beta Release Alpha (Technology Preview) Release ???
HTML Implied elements test[1] b Y M M M Y b Y B B HTML4
Styling of form elements U U U U U U U U U U
1.3.3 Shorthand Properties U U U U U U U U U U CSS1
3.2 CSS2 Conformance - alternate stylesheets Y N N N N N N N N N CSS2
3.2 CSS2 Conformance - loading errors[1] Y Y Y Y Y Y Y B B Y CSS2
3.2 CSS2 Conformance - XML - alternate stylesheets U U U U U U U U U U CSS2
3.2 CSS2 Conformance - XML - loading errors[1] U U U U U U U U U U CSS2
4.1.1, 4.2 CSS Parsing Test[1] Y Y B B B Y B B B B CSS2 (and 1?)
4.1.1, 4.2 CSS Parsing Test 2 Y Y B B B Y B B B B CSS2 (and 1?)
4.1.1, D.1, 4.2 CSS Parsing Test 4 Y Y B Y Y Y B (M?) B Y Y CSS1
4.1.1, D.1, 4.2 CSS Parsing Test 5 Y Y B Y Y Y B (M?) B B B CSS1
4.1.8 CSS Parsing Test 6 U U U U U U U U U U CSS1
4.1.2 Keywords Y B B B B P B B B B CSS1, CSS2
4.1.3 Case sensitivity of id and class Y B Y B B Y Y B B B HTML4
4.1.3, 5.4 Strange XML Type Selectors Y B N/A B (unspecified XML error) U C (was N/A) N/A B N/A N/A CSS2, XML1.0, xml-stylesheet
4.2, 4.3.2 Unitless Lengths Test[1] Y[8] Y Y B B Y B Y B N CSS1
4.3.2 ex unit test B (P?) B B (P?) B (P?) B (P?) B (but ex works!) BB BB M N CSS1
4.3.2 em unit test A B Y (?) A M B BB BB M N CSS1
4.3.10 Strings Y Y (part M) N B B B (or P?) B B N B CSS1, CSS2
4.4.1, 4.1.1CSS Character Escapes (Y) BB D N N N N D D D CSS1, CSS2
5 Selector confusion U U U U U U U U U U CSS1
5.3 The CSS2 Universal Selector Y B (b?) P Y P b B (!important buggy) Y N N CSS2
5.6 The CSS2 Child Selector Y b B N D b B? b N D CSS2
5.7 CSS2 Adjacent Sibling Selectors Y[4] b P N D B B (P?) b N D CSS2
5.8 CSS2 Attribute Selectors Y N N N d D B B N N CSS2
5.8.3, 6.4.1 CSS with multiple classes Y Y Y Y Y Y b Y N N HTML4 or CSS2
5.9 ID selectors in XML Y N N/A B (unspecified XML error) N C (was N/A) N/A N N/A N/A CSS2
5.10, 5.3 Pseudo-element tests BB B B P P N D B (D?) B B CSS2 (and 1?)
5.10 Pseudo-class tests Y Y N B B N B BB N U CSS2
5.10 Pseudo-class tests 3 Y Y N B B N B D N U CSS2
5.11.1 CSS2 :first-child Selector Y Y N N N b Y N N D CSS2
5.11.3 Dynamic pseudo-classes on links Y Y B (P in 3.51??) B B N B B B N CSS1, CSS2
5.11.3 Dynamic pseudo-classes on elements other than links Y B N N N N b N N U CSS2
6.1 Test for Lack of Order Dependence[1] Y Y Y Y Y Y Y b M M CSS1
6.2.1 CSS inherit Test Y P P N N P N P D D CSS2
6.4.2 Test of !important grammar Y Y Y Y Y Y N Y N Y CSS1, CSS2
6.4.3 Inline style specificity test[1] (B) (B) B (B) (B) (B) (B) B BB BB CSS1
6.4.3 Specificity Base Test[1] Y Y Y (B in 3.51) Y Y B B Y Y B CSS1
6.4.4 Non-CSS Presentational Hints Test 1 Y B B Y Y B B B B B CSS1
6.4.4 Non-CSS Presentational Hints Test 2 b[10] U B U B U U U N N CSS1
8, 1.3.3 Shorthand Box Properties Test Y Y Y Y M Y Y B M N CSS1
8, 1.3.3 Shorthand Box Properties Test 2 Y Y Y Y M B B B M N CSS1
8, 9.1.2 html and body box properties b (was A) Y B B B Y b b B N CSS1
8, 12.6.2 List Box Properties Y (Y) (Y) Y Y B B B B N CSS1, CSS2
8.3 Zero Margins Test Y (but HR disappears) Y m B M b BB b B N CSS1
8.5 Shorthand Border Properties Test Y Y Y Y Y B B B B N CSS1
8.5 Shorthand Border Properties Test 2 B B U U U B U U B U CSS1
8.5 Border Properties Test U U U U U U U U U U CSS1, CSS2
9.1.2 Initial Containing Block b (was B?) Y B B (P?) B B B (?) B B U CSS2
9.2.1 Block Boxes Y Y Y Y Y B Y Y B N CSS1, CSS2
9.2.3 Compact Boxes N[3] N N N N D N Y (spec is unclear; test may be wrong) N N CSS2
9.2.4 Run-in Boxes N[3] Y N N N D B B N N CSS2
9.2.5 Test of display: none Y Y Y Y Y Y Y B Y N CSS1, CSS2 or HTML40
9.3.1 Positioning B B N B BB BB D B B N CSS2 (possibly soon incorrect)
9.3.2 Test of top B B N D B b B B BB N CSS2 (possibly soon incorrect)
9.3.2 Test of right Y Y N b b P B B BB N CSS2 (possibly soon incorrect)
9.3.2 Test of bottom U B N B B b B B BB N CSS2 (possibly soon incorrect)
9.3.2 Test of left B Y N P b Y B B BB N CSS2 (possibly soon incorrect)
9.5 Stacking order on floats U U U U U U U U U U CSS1 (?), CSS2
9.5.1 My original CSS1 section 4.1.4 test (B) B B B B (B) BB BB B N CSS1
9.5.1 Float Positioning Test 2 B B BB Y Y Y BB BB BBB N CSS1
9.7 Relationships between display, position, and float. Y B P B B B BB b B U CSS2
9.9 Layered presentation B B N B B B B B BB U CSS2
9.10 Bidirectional Test P N N Y Y P (Y?) N N N N CSS2
9.10 Bidirectional Test 2 U U U U U U U U U U CSS2
10.1 Containing blocks of block level and floating elements Y (?) B b B B B B b BB B CSS1, CSS2
10.1 Containing blocks of fixed elements b (worse on Win??) B N N BB (D?) BB (D?) B BB BB (D?) D CSS2 (possibly soon incorrect)
10.1 Containing blocks of absolutely positioned elements with block-level positioned ancestors Y B N BB B BB BB BB BB D CSS2 (possibly soon incorrect)
10.1 Containing blocks of absolutely positioned elements with inline-level positioned ancestors U U U U U U U U U D CSS2
10.1 Containing blocks of absolutely positioned elements without positioned ancestors U U U U U U U B B U CSS2 (possibly soon incorrect)
10.3.1 Widths and margins of inline, non-replaced elements Y Y P B B P BB B BB BB CSS1, CSS2
10.3.2 Widths and margins of inline, replaced elements Y Y BB Y Y B BB B BB U CSS1, CSS2
10.3.3 Widths and margins of block-level, non-replaced elements Y B P B B B BB B M U CSS1, CSS2
10.3.4 Widths and margins of block-level, replaced elements Y M B B (P?) B (P?) B B B (D?) M U CSS1, CSS2
10.3.5 Widths and margins of floating, non-replaced elements B (BB?) B BB BB BB B B B (D?) M U CSS1, CSS2
10.3.7 Widths and margins of absolutely positioned, non-replaced elements b BB N B B BB BB BBB N U CSS2 (soon incorrect)
10.4 Maximum and Minimum Widths Y N N N N B (N) N (B) Y M U CSS2
10.4 Maximum and Minimum Width Recalculations B N B N N BB D B N U CSS2
10.6.4 Heights and margins of absolutely positioned, non-replaced elements (was Y) BB N B B B (?) BB B N U CSS2 (soon incorrect)
10.7 Maximum and Minimum Heights Y N N N N N N Y M U CSS2
10.7 Maximum and Minimum Height Recalculations b N N N N BB N B N U CSS2
10.3.7, 10.6.4, 6.2 Inheritance of width and height on absolutely positioned elements b Y N N B b BB B B U CSS2
10.8 Line Box Test 1 Y Y B Y Y P P B M U CSS1, CSS2
10.8, 9.4.2 Line Box Test 2 Y B B B B B N B B U CSS1, CSS2
10.8.1, 9.4.2 line-height Inheritence Test and Line Box Test 3 - inheritance Y Y Y Y Y B N Y B U CSS1
10.8, 10.6.1 line-height Inheritence Test and Line Box Test 3 - line boxes Y Y Y B B B N Y B U CSS1, CSS2
10.8, 10.6.1 Line Box Test 4 Y (was B (?)) Y BB (B) B BB B A BB U CSS1, CSS2
10.8 Inline Display Test A B B B N B (?) B B?? BB U CSS1, CSS2
11.1 The overflow and clip properties B B N B B B (N) BB N/B N U CSS2
11.1.2 The clip property (was Y) B N B B B (N) BB N/B B U CSS2
11.1.2 The clip property (was Y) B N B B B (N) BB N/B B U CSS2
11.2 The visibility property Y Y N P P N P (?) B M N CSS2
11.2 The visibility property Y Y N P P (also display glitch) N P (?) B M U CSS2
12.1 The :before and :after pseudo-elements BB N N N N N B C N N CSS2
12.2 The content property P/A N N N N N BB B N N CSS2
14.2.1 The 'background-image' property Y Y Y Y Y N Y BB D N CSS1(, CSS2)?
15.2.3 font-weight error-handling test Y B U B U P Y C U U CSS1
15.2.3 The font-stretch property N N N N N N N N N U CSS2
16.3.2 Text Shadow Test N N N N N N N N N N CSS2
17.2 Table display types P B N N N D C (exception) M N N CSS2
17.2.1 Anonymous Table Objects Y B N N N B C (exception) C N N CSS2
17.4 Tables and captions P N[11] N N N D D B C N CSS2
17.4 Anonymous box around caption and table B N[11] N P B D D D N N HTML 4.0, CSS2
17.4.1 Caption position and alignment B N[11] N N N D D BB C N CSS2
17.5.1 Table layers and transparency Y[8] P P (Y) (Y) P P P B D CSS2
17.5.1 Table layers and transparency Y[8] P P B B P P P B D CSS2
17.5.1 Table layers and transparency Y[8] B B B B B B B B D CSS2
17.5.2 table-layout: fixed Y N N B B N N B N N CSS2
17.5.3 Vertical alignment and table height b B N B B D B (P?) b M U CSS2
17.5.4 Horizontal alignment and table width (should be retested) (should be retested) P P D[7] P P P P P P U CSS2
17.6 Table Border Test 1 B B N B B B N Y N N CSS2
17.6 Table Border Test 2 B B N N N N N B N U CSS2
17.6 Simple collapsing table borders B B N N N B N B N U CSS2
18.1 The cursor property B Y N P P N U N N U CSS2
18.2 UI colors B P[12] N Y Y N N N D U CSS2
18.3 UI fonts N B N B B N N N N U CSS2
18.4 The outline property N B N N N N N N N U CSS2
Font Sizes A (A) A B B BB A B B U CSS1
Tests Y (+1) 60 39 17 23 20 16 9 13 3  
Tests N (0) 6 17 48 27 24 21 24 9 36  
Tests P (+0.5) 5 4 8 7 6 10 6 4 1  
Tests B (-0.5) 28 43 26 45 46 49 57 70 45  
Tests D (-2) 0 0 2 1 3 8 6 3 4  
Tests M (-0.5) 0 1 2 0 5 0 0 1 14  
Tests C (-4) 0 0 0 0 0 2 2 3 2  
Total Points (as of 2000-09-29), out of about 104 48.5 19 3 2 -8.5 -27.5 -36.5 -38.5 -42  

[1] “Basic feature,” i.e., it is not possible not to support this.

[2] earliest spec for each feature tested; judgment approximate

[3] Supported in earlier builds, but feature now removed.

[4] This Y result depends on a definition of adjacent sibling elements that is not in the spec, but does make sense.

[5] Differences with 3.51 are noted for tests that existed before 3.61 was released.

[6] The only differences I have seen between Linux and Windows versions are (1) that the Linux version sometimes has problems drawing or redrawing borders and (2) occasional font-selection quirks on Linux.

[7] The problem that gets the "D" rating is that the two high unicode character entities cause the rest of the line to disappear. This isn't strictly a CSS problem, but it's very serious.

[8] I believe this test only works correctly when Mozilla is in standard mode, which is detected based on the DOCTYPE.

[9] I gave up testing WebTV about halfway through because I didn't understand the results I was seeing, and the browser didn't show enough promise to deserve further investigation. I think it may do something weird like only accept styles on DIV elements, and not P elements (or something else...).

[10] User stylesheet simulated by appending to ua.css.

[11] MacIE's table model in some areas is not the CSS2 table model. However, it uses its own table model for some of its application of CSS to tables. This is acceptable under CSS1, and therefore receives an N rating.

[12] The UI colors in MacIE are reasonable, but do not come from the UI.

Test pages not listed above

Old versions of this page


Valid HTML 4.0!

(Back to CSS Testing Information, David Baron)

LDB, dbaron@dbaron.org