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 (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.†
M Maybe (i.e, other bugs prevent proper testing)
C Crashes
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.

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

[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.

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