CSS2.1 Conformance Test Suite
Index by Section
This index lists tests by associated spec section. Tests are listed in
strong in their primary section.
Test |
Flags |
1 About the CSS 2.1 Specification |
1.1 CSS 2.1 vs CSS 2 |
1.2 Reading the specification |
1.3 How the specification is organized |
1.4 Conventions |
1.4.1 Document language elements and attributes |
1.4.2 CSS property definitions |
1.4.2.1 Value |
1.4.2.2 Initial |
1.4.2.3 Applies to |
1.4.2.4 Inherited |
1.4.2.5 Percentage values |
1.4.2.6 Media groups |
1.4.2.7 Computed value |
1.4.3 Shorthand properties |
1.4.4 Notes and examples |
1.4.5 Images and long descriptions |
1.5 Acknowledgments |
2 Introduction to CSS 2.1 |
2.1 A brief CSS 2.1 tutorial for HTML |
2.2 A brief CSS 2.1 tutorial for XML |
2.3 The CSS 2.1 processing model |
2.3.1 The canvas |
2.3.2 CSS 2.1 addressing model |
2.4 CSS design principles |
3 Conformance: Requirements and Recommendations |
3.1 Definitions |
3.2 UA Conformance |
3.3 Error conditions |
3.4 The text/css content type |
4 Syntax and basic data types |
4.1 Syntax |
4.1.1 Tokenization |
4.1.2 Keywords |
4.1.2.1 Vendor-specific extensions |
4.1.2.2 Informative Historical Notes |
4.1.3 Characters and case |
4.1.4 Statements |
4.1.5 At-rules |
4.1.6 Blocks |
4.1.7 Rule sets, declaration blocks, and selectors |
4.1.8 Declarations and properties |
4.1.9 Comments |
4.2 Rules for handling parsing errors |
4.3 Values |
4.3.1 Integers and real numbers |
4.3.2 Lengths |
4.3.3 Percentages |
4.3.4 URLs and URIs |
4.3.5 Counters |
4.3.6 Colors |
4.3.7 Strings |
4.3.8 Unsupported Values |
4.4 CSS style sheet representation |
4.4.1 Referring to characters not represented in a character encoding |
5 Selectors |
5.1 Pattern matching |
5.2 Selector syntax |
5.2.1 Grouping |
5.3 Universal selector |
5.4 Type selectors |
5.5 Descendant selectors |
5.6 Child selectors |
5.7 Adjacent sibling selectors |
5.8 Attribute selectors |
5.8.1 Matching attributes and attribute values |
5.8.2 Default attribute values in DTDs |
5.8.3 Class selectors |
5.9 ID selectors |
5.10 Pseudo-elements and pseudo-classes |
5.11 Pseudo-classes |
5.11.1 :first-child pseudo-class |
5.11.2 The link pseudo-classes: :link and :visited |
5.11.3 The dynamic pseudo-classes: :hover, :active, and :focus |
5.11.4 The language pseudo-class: :lang |
5.12 Pseudo-elements |
5.12.1 The :first-line pseudo-element |
5.12.2 The :first-letter pseudo-element |
5.12.3 The :before and :after pseudo-elements |
6 Assigning property values, Cascading, and Inheritance |
6.1 Specified, computed, and actual values |
6.1.1 Specified values |
6.1.2 Computed values |
6.1.3 Used values |
6.1.4 Actual values |
6.2 Inheritance |
6.2.1 The 'inherit' value |
6.3 The @import rule |
6.4 The cascade |
6.4.1 Cascading order |
6.4.2 !important rules |
6.4.3 Calculating a selector's specificity |
6.4.4 Precedence of non-CSS presentational hints |
7 Media types |
7.1 Introduction to media types |
7.2 Specifying media-dependent style sheets |
7.2.1 The @media rule |
7.3 Recognized media types |
7.3.1 Media groups |
8 Box model |
8.1 Box dimensions |
8.2 Example of margins, padding, and borders |
8.3 Margin properties: 'margin-top', 'margin-right', 'margin-bottom', 'margin-left', and 'margin' |
8.3.1 Collapsing margins |
8.4 Padding properties: 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', and 'padding' |
8.5 Border properties |
8.5.1 Border width: 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width', and 'border-width' |
8.5.2 Border color: 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color', and 'border-color' |
8.5.3 Border style: 'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style', and 'border-style' |
8.5.4 Border shorthand properties: 'border-top', 'border-right', 'border-bottom', 'border-left', and 'border' |
8.6 The box model for inline elements in bidirection context |
9 Visual formatting model |
9.1 Introduction to the visual formatting model |
9.1.1 The viewport |
9.1.2 Containing blocks |
9.2 Controlling box generation |
9.2.1 Block-level elements and block boxes |
9.2.1.1 Anonymous block boxes |
9.2.2 Inline-level elements and inline boxes |
9.2.2.1 Anonymous inline boxes |
9.2.3 Run-in boxes |
9.2.4 The 'display' property |
9.3 Positioning schemes |
9.3.1 Choosing a positioning scheme: 'position' property |
9.3.2 Box offsets: 'top', 'right', 'bottom', 'left' |
9.4 Normal flow |
9.4.1 Block formatting contexts |
9.4.2 Inline formatting context |
9.4.3 Relative positioning |
9.5 Floats |
9.5.1 Positioning the float: the 'float' property |
9.5.2 Controlling flow next to floats: the 'clear' property |
9.6 Absolute positioning |
9.6.1 Fixed positioning |
9.7 Relationships between 'display', 'position', and 'float' |
9.8 Comparison of normal flow, floats, and absolute positioning |
9.8.1 Normal flow |
9.8.2 Relative positioning |
9.8.3 Floating a box |
9.8.4 Absolute positioning |
9.9 Layered presentation |
9.9.1 Specifying the stack level: the 'z-index' property |
9.10 Text direction: the 'direction' and 'unicode-bidi' properties |
10 Visual formatting model details |
10.1 Definition of "containing block" |
10.2 Content width: the 'width' property |
10.3 Calculating widths and margins |
10.3.1 Inline, non-replaced elements |
10.3.2 Inline, replaced elements |
10.3.3 Block-level, non-replaced elements in normal flow |
10.3.4 Block-level, replaced elements in normal flow |
10.3.5 Floating, non-replaced elements |
10.3.6 Floating, replaced elements |
10.3.7 Absolutely positioned, non-replaced elements |
10.3.8 Absolutely positioned, replaced elements |
10.3.9 'Inline-block', non-replaced elements in normal flow |
10.3.10 'Inline-block', replaced elements in normal flow |
10.4 Minimum and maximum widths: 'min-width' and 'max-width' |
10.5 Content height: the 'height' property |
10.6 Calculating heights and margins |
10.6.1 Inline, non-replaced elements |
10.6.2 Inline replaced elements, block-level replaced elements in normal flow, 'inline-block' replaced elements in normal flow and floating replaced elements |
10.6.3 Block-level non-replaced elements in normal flow when 'overflow' computes to 'visible' |
10.6.4 Absolutely positioned, non-replaced elements |
10.6.5 Absolutely positioned, replaced elements |
10.6.6 Complicated cases |
10.6.7 'Auto' heights for block formatting context roots |
10.7 Minimum and maximum heights: 'min-height' and 'max-height' |
10.8 Line height calculations: the 'line-height' and 'vertical-align' properties |
10.8.1 Leading and half-leading |
11 Visual effects |
11.1 Overflow and clipping |
11.1.1 Overflow: the 'overflow' property |
11.1.2 Clipping: the 'clip' property |
11.2 Visibility: the 'visibility' property |
12 Generated content, automatic numbering, and lists |
12.1 The :before and :after pseudo-elements |
12.2 The 'content' property |
12.3 Quotation marks |
12.3.1 Specifying quotes with the 'quotes' property |
12.3.2 Inserting quotes with the 'content' property |
12.4 Automatic counters and numbering |
12.4.1 Nested counters and scope |
12.4.2 Counter styles |
12.4.3 Counters in elements with 'display: none' |
12.5 Lists |
12.5.1 Lists: the 'list-style-type', 'list-style-image', 'list-style-position', and 'list-style' properties |
13 Paged media |
13.1 Introduction to paged media |
13.2 Page boxes: the @page rule |
13.2.1 Page margins |
13.2.1.1 Rendering page boxes that do not fit a target sheet |
13.2.1.2 Positioning the page box on the sheet |
13.2.2 Page selectors: selecting left, right, and first pages |
13.2.3 Content outside the page box |
13.3 Page breaks |
13.3.1 Page break properties: 'page-break-before', 'page-break-after', 'page-break-inside' |
13.3.2 Breaks inside elements: 'orphans', 'widows' |
13.3.3 Allowed page breaks |
13.3.4 Forced page breaks |
13.3.5 "Best" page breaks |
13.4 Cascading in the page context |
14 Colors and Backgrounds |
14.1 Foreground color: the 'color' property |
14.2 The background |
14.2.1 Background properties: 'background-color', 'background-image', 'background-repeat', 'background-attachment', 'background-position', and 'background' |
14.3 Gamma correction |
15 Fonts |
15.1 Introduction |
15.2 Font matching algorithm |
15.3 Font family: the 'font-family' property |
15.3.1 Generic font families |
15.3.1.1 serif |
15.3.1.2 sans-serif |
15.3.1.3 cursive |
15.3.1.4 fantasy |
15.3.1.5 monospace |
15.4 Font styling: the 'font-style' property |
15.5 Small-caps: the 'font-variant' property |
15.6 Font boldness: the 'font-weight' property |
15.7 Font size: the 'font-size' property |
15.8 Shorthand font property: the 'font' property |
16 Text |
16.1 Indentation: the 'text-indent' property |
16.2 Alignment: the 'text-align' property |
16.3 Decoration |
16.3.1 Underlining, overlining, striking, and blinking: the 'text-decoration' property |
16.4 Letter and word spacing: the 'letter-spacing' and 'word-spacing' properties |
16.5 Capitalization: the 'text-transform' property |
16.6 Whitespace: the 'white-space' property |
16.6.1 The 'white-space' processing model |
16.6.2 Example of bidirectionality with white-space collapsing |
16.6.3 Control and combining characters' details |
17 Tables |
17.1 Introduction to tables |
17.2 The CSS table model |
17.2.1 Anonymous table objects |
17.3 Columns |
17.4 Tables in the visual formatting model |
17.4.1 Caption position and alignment |
17.5 Visual layout of table contents |
17.5.1 Table layers and transparency |
17.5.2 Table width algorithms: the 'table-layout' property |
17.5.2.1 Fixed table layout |
17.5.2.2 Automatic table layout |
17.5.3 Table height algorithms |
17.5.4 Horizontal alignment in a column |
17.5.5 Dynamic row and column effects |
17.6 Borders |
17.6.1 The separated borders model |
17.6.1.1 Borders and Backgrounds around empty cells: the 'empty-cells' property |
17.6.2 The collapsing border model |
17.6.2.1 Border conflict resolution |
17.6.3 Border styles |
18 User interface |
18.1 Cursors: the 'cursor' property |
18.2 System Colors |
18.3 User preferences for fonts |
18.4 Dynamic outlines: the 'outline' property |
18.4.1 Outlines and the focus |
18.5 Magnification |
Appendix A. Aural style sheets |
Informative |
Appendix B. Bibliography |
Appendix C. Changes |
Informative |
Appendix D. Default style sheet for HTML 4 |
Informative |
Appendix E. Elaborate description of Stacking Contexts |
E.1 Definitions |
E.2 Painting order |
E.3 Notes |
Appendix F. Full property table |
Informative |
Appendix G. Grammar of CSS 2.1 |
G.1 Grammar |
G.2 Lexical scanner |
G.3 Comparison of tokenization in CSS 2.1 and CSS1 |
Appendix I. Index |
Informative |