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. Warning: These tests may crash your browser or your whole computer. Use caution when testing.
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) |
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.”
Note: Not all of my test pages are listed here. Those not testable are listed below.
Browser | Mozilla | Opera | Opera | MSIE | NNav | WebTV | Specs Tested † |
---|---|---|---|---|---|---|---|
Version | 99-07-01 / 99-04-07, etc. | 3.51 | 3.60 | 5.0 | 4.5 | 1.1, b229 | |
Platform | Linux & Windows | Windows | Windows | Windows | Linux & Windows | Windows | |
HTML Implied elements test* | Y | M | M | M | B | B | HTML4 |
Styling of form elements | U | U | U | U | U | U | |
3.2 CSS2 Conformance - alternate stylesheets | y | N | N | N | N | N | CSS2 |
3.2 CSS2 Conformance - loading errors* | Y | Y | Y | Y | B | Y | CSS2 |
4.1.2 Keywords | Y | U | U | U | U | U | CSS1, CSS2 |
4.1.3 Case sensitivity of id and class | Y | U | Y | B | B | B | HTML4 |
4.3.2 ex unit test | B | B | B | B | M | N | CSS1 |
4.3.2 em unit test | B | Y | Y | M | M | N | CSS1 |
4.3.10 Strings | Y | U | U | U | U | U | CSS1, CSS2 |
5.3 The CSS2 Universal Selector | Y | P | P | P | N | N | CSS2 |
5.6 The CSS2 Child Selector | Y | B | B | D | N | B | CSS2 |
5.7 CSS2 Adjacent Sibling Selectors | Y2 | P | P | D | N | D | CSS2 |
5.8 CSS2 Attribute Selectors | Y | N | N | d | N | N | CSS2 |
5.9 ID selectors in XML | U | U | U | U | U | U | CSS2 |
5.3, 5.10 Pseudo-element tests | Y | U | B | P | B | B | CSS2 (and 1?) |
5.10 Pseudo-element tests 2 | Y | U | U | U | U | 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 | P? | B | B | B | P | CSS1, CSS2 |
5.11.3 Dynamic pseudo-classes on elements other than links | B | U | U | U | U | U | CSS2 |
Test for Lack of Order Dependence* | Y | Y | Y | Y | M | M | CSS1 |
6.2.1 CSS inherit Test | Y | P | P | N | D | B | CSS2 |
6.4.2 Test of !important grammar | Y | Y | Y | Y | N | Y | CSS1, CSS2 |
6.4.3 Inline style specificity test* | (B) | (B) | B | (B) | BB | BB | CSS1 |
6.4.4 Non-CSS Presentational Hints Test 1 | b | B | B | Y | B | U | CSS1 |
6.4.4 Non-CSS Presentational Hints Test 2 | B/U | B | B | B | N | N | CSS1 |
Unitless Numbers Test* | B | Y | Y | B | B | N | CSS1 |
CSS Parsing Test* | Y | B | B | B | B | B | CSS2 (and 1?) |
CSS Parsing Test 2 | Y | U | B | B | B | B | CSS2 (and 1?) |
CSS Character Escapes | Y | D | D | N | D | D | CSS1, CSS2 |
CSS Parsing Test 4 | Y | U | U | U | U | U | CSS1 |
CSS Parsing Test 5 | Y | U | U | U | U | U | CSS1 |
6.4.3 Specificity Base Test* | Y | B | Y | Y | Y | B | CSS1 |
5.8.3, 6.4.1 CSS with multiple classes | Y | Y | Y | Y | N | N | HTML4 |
html and body box properties |
A | U | U | U | U | U | CSS1 |
List Box Properties | (Y) | (Y) | (Y) | Y | B | N | CSS1, CSS2 |
Shorthand Box Properties Test | Y | Y | Y | M | M | N | CSS1 |
Shorthand Box Properties Test 2 | Y | Y | Y | M | M | N | CSS1 |
8.5 Shorthand Border Properties Test | Y | U | Y | Y | B | N | CSS1 |
8.5 Border Properties Test | U | U | U | U | U | U | CSS1, CSS2 |
Zero Margins Test | M | m | m | M | B | N | CSS1 |
9.1.2 Initial Containing Block | U | U | U | U | U | U | CSS2 |
9.2.1 Block Boxes | Y | Y | Y | Y | B | N | CSS1, CSS2 |
9.2.3 Compact Boxes | N1 | N | N | N | N | N | CSS2 |
9.2.4 Run-in Boxes | N1 | N | N | N | N | N | CSS2 |
9.2.5 Test of display: none | Y/ | Y | Y | Y | Y | N | CSS1, CSS2 or HTML40 |
9.3.1 Positioning | B | N | N | BB | B | N | CSS2 |
9.3.2 Test of top | B | N | N | B | BB | N | CSS2 |
9.3.2 Test of right | b | N | N | b | BB | N | CSS2 |
9.3.2 Test of bottom | B | N | N | B | BB | N | CSS2 |
9.3.2 Test of left | b | N | N | 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 | B | B | N | CSS1 |
9.5.1 Float Positioning Test 2 | B | U | BB | Y | BBB | N | CSS1 |
9.7 Relationships between display, position, and float. | U | U | U | U | U | U | CSS2 |
9.9 Layered presentation | U | U | U | U | U | U | CSS2 |
9.10 Bidirectional Test | P | N | N | Y | N | N | CSS2 |
10.1 Containing blocks of block level and floating elements | b | U | b | B | BB | B | CSS1, CSS2 |
10.1 Containing blocks of fixed elements | B | U | N | BB | BB | D | CSS2 |
10.1 Containing blocks of absolutely positioned elements with block-level positioned ancestors | b | U | N | B | 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 | U | U | U | U | U | U | CSS2 |
10.3.1 Widths and margins of inline, non-replaced elements | Y | P | P | B | BB | BB | CSS1, CSS2 |
10.3.2 Widths and margins of inline, replaced elements | Y | BB | BB | Y | BB | U | CSS1, CSS2 |
10.3.3 Widths and margins of block-level, non-replaced elements | Y | U | P | B | M | U | CSS1, CSS2 |
10.3.4 Widths and margins of block-level, replaced elements | Y | B | B | B (P?) | M | U | CSS1, CSS2 |
10.3.5 Widths and margins of floating, non-replaced elements | B | U | BB | BB | M | U | CSS1, CSS2 |
10.3.7 Widths and margins of absolutely positioned, non-replaced elements | U | U | U | U | U | U | CSS2 |
10.6.4 Heights and margins of absolutely positioned, non-replaced elements | U | U | U | U | U | U | CSS2 |
10.4 Maximum and Minimum Widths | Y | N | N | N | M | U | CSS2 |
10.4 Maximum and Minimum Width Recalculations | U | U | U | U | U | U | CSS2 |
10.7 Maximum and Minimum Heights | Y | N | N | N | M | U | CSS2 |
10.7 Maximum and Minimum Width Recalculations | U | U | U | U | U | U | CSS2 |
Inheritance of width and height on absolutely positioned elements | U | U | U | U | U | U | CSS2 |
Line Box Test 1 | Y | B | B | Y | M | U | CSS1, CSS2 |
Line Box Test 2 | Y | B | B | B | B | U | CSS1, CSS2 |
line-height Inheritence Test and Line Box Test 3 - inheritance | Y | Y | Y | Y | B | U | CSS1 |
line-height Inheritence Test and Line Box Test 3 - line boxes | B | Y | Y | B | B | U | CSS1, CSS2 |
Line Box Test 4 | B | BB | BB | B | BB | U | CSS1, CSS2 |
Inline Display Test | b | B | B | N | BB | U | CSS1, CSS2 |
11.1 The overflow and clip properties | U | U | U | U | U | U | CSS2 |
11.1.2 The clip property | U | U | U | U | U | U | CSS2 |
11.1.2 The clip property | U | U | U | U | U | U | CSS2 |
11.2 The visibility property | U | U | U | U | U | U | CSS2 |
11.2 The visibility property | U | U | U | U | U | U | CSS2 |
12.1 The :before and :after pseudo-elements | P | N | N | N | N | U | CSS2 |
12.2 The content property | U | U | U | U | U | U | CSS2 |
14.2.1 The 'background-image' property | U | U | U | U | U | U | CSS1(, CSS2)? |
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 | U | CSS2 |
17.2 Table display types | U | U | U | U | U | U | CSS2 |
17.2.1 Anonymous Table Objects | B | U | N | N | N | U | CSS2 |
17.4 Tables and captions | U | U | U | U | U | U | CSS2 |
17.4 Anonymous box around caption and table | U | U | U | U | U | U | CSS2 |
17.4.1 Caption position and alignment | U | U | U | U | U | U | CSS2 |
17.5.1 Table layers and transparency | B | U | P | (Y) | B | U | CSS2 |
17.5.1 Table layers and transparency | B | U | P | B | B | U | CSS2 |
17.5.1 Table layers and transparency | B | U | B | B | B | U | CSS2 |
17.5.2 table-layout: fixed | U | U | U | U | U | U | CSS2 |
17.5.3 Vertical alignment and table height | U | U | U | U | U | U | CSS2 |
17.5.4 Horizontal alignment and table width | U | U | U | U | U | U | CSS2 |
17.6 Table Border Test 1 | b | N | N | B | N | U | CSS2 |
17.6 Table Border Test 2 | B | N | N | N | N | U | CSS2 |
17.6 Simple collapsing table borders | U | U | U | U | U | U | CSS2 |
18.1 The cursor property | U | U | U | U | U | U | CSS2 |
18.2 UI colors | U | U | U | U | U | U | CSS2 |
18.3 UI fonts | U | U | U | U | U | U | CSS2 |
18.4 The outline property | U | U | U | U | U | U | CSS2 |
Font Sizes | B | U | B | B | B | U | CSS1 |
Tests Y (+1) | 34 | 16 | 16 | 2 | U | ||
Tests N (0) | 4 | 21 | 14 | 18 | U | ||
Tests P (+0.5) | 2 | 7 | 2 | 0 | U | ||
Tests B (-0.5) | 27 | 20 | 28 | 35 | U | ||
Tests D (-2) | 0 | 1 | 3 | 2 | U | ||
Tests M (-0.5) | 1 | 2 | 5 | 11 | U | ||
Tests C (-4) | 0 | 0 | 0 | 0 | U | ||
Total Points (as of 1999-05-20) | 21 | 6.5 | -5.5 | -25 | U |
* “Basic feature,” i.e., it is not possible not to support this.
† earliest spec for each feature tested; judgment approxmate
1 Supported in earlier builds, but feature now removed.
2 This result depends on a definition of adjacent sibling elements that is not in the spec, but does make sense.
(Back to CSS Testing Information, David Baron)