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 Type Flags
1 About the CSS2.1 Specification
1.1 CSS2.1 vs CSS2
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
Shorthand Properties (border) composite
Shorthand Properties (font) basic
Shorthand Properties (font) basic
Shorthand Properties (font) basic
Shorthand Properties (font) basic
1.4.4 Notes and examples
1.4.5 Images and long descriptions
1.5 Acknowledgments
2 Introduction to CSS2.1
2.1 A brief CSS2.1 tutorial for HTML
2.2 A brief CSS2.1 tutorial for XML
2.3 The CSS2.1 processing model
2.3.1 The canvas
The Canvas basic
2.3.2 CSS2.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
Keywords basic
Keywords basic
4.1.2.1 Vendor-specific extensions
4.1.2.2 Informative Historical Notes
4.1.3 Characters and case
Characters and Case basic
Characters and Case composite
Characters and Case: Character Escapes basic
Characters and Case: Character Escapes basic
Characters and Case: Character Escapes detailed
Characters and Case: Character Escapes basic
Characters and Case: Character Escapes basic
Characters and Case: Character Escapes and Case Insensitivity composite
Characters and Case: Character Escapes basic
Characters and Case: Character Escapes basic
Characters and Case: Character Escapes basic
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
Characters and Case composite
4.1.4 Statements
4.1.5 At-rules
At-rules basic
At-rules basic
At-rules basic
At-rules basic
At-rules basic
At-rules basic
At-rules basic
At-rules basic
At-rules basic
At-rules basic
4.1.6 Blocks
4.1.7 Rule sets, declaration blocks, and selectors
4.1.8 Declarations and properties
4.1.9 Comments
Comments basic
Comments basic
Basic Containment basic
4.2 Rules for handling parsing errors
Forward-Compatible Parsing failure
Forward-Compatible Parsing failure
Forward-Compatible Parsing failure
Forward-Compatible Parsing failure
Forward-Compatible Parsing failure
malformed declaration missing ':', value, part 1 failure
malformed declaration missing ':', value, part 2 failure
malformed declaration missing value, part 1 failure
malformed declaration missing value, part 2 failure
malformed declaration: unexpected tokens { }, part 1 failure
malformed declaration: unexpected tokens { }, part 2 failure
4.3 Values
4.3.1 Integers and real numbers
4.3.2 Lengths
Length Units atomic
Length Units basic
Length Units basic A G
padding-top atomic
padding-left basic A G
padding basic A G
text-indent atomic
4.3.3 Percentages
Percentage Units basic A G
4.3.4 URLs and URIs
URLs atomic G
Basic Containment basic
4.3.5 Counters
content: counter(c) basic
content: counter(c, none) basic
content: counter(c, disc) basic
content: counter(c, circle) basic
content: counter(c, square) basic
content: counter(c, decimal) basic
content: counter(c, decimal-leading-zero) basic
content: counter(c, lower-roman) basic
content: counter(c, upper-roman) basic
content: counter(c, georgian) basic
content: counter(c, armenian) basic
content: counter(c, lower-latin) basic
content: counter(c, lower-alpha) basic
content: counter(c, upper-latin) basic
content: counter(c, upper-alpha) basic
content: counter(c, lower-greek) basic
content: counter() error cases failure
content: counters(c, ".") basic
content: counters(c, ".", none) basic
content: counters(c, ".", disc) basic
content: counters(c, ".", circle) basic
content: counters(c, ".", square) basic
content: counters(c, ".", decimal) basic
content: counters(c, ".", decimal-leading-zero) basic
content: counters(c, ".", lower-roman) basic
content: counters(c, ".", upper-roman) basic
content: counters(c, ".", georgian) basic
content: counters(c, ".", armenian) basic
content: counters(c, ".", lower-latin) basic
content: counters(c, ".", lower-alpha) basic
content: counters(c, ".", upper-latin) basic
content: counters(c, ".", upper-alpha) basic
content: counters(c, ".", lower-greek) basic
content: counters() string argument composite
content: counters() string argument detailed
content: counters() error cases failure
Counter scope basic
Counter scope and nesting on elements composite
Counter scope and nesting on :before composite
Counter scope and nesting on :after composite
Counter scope and nesting detailed
Counter properties on 'content: none' pseudo-elements composite
Counter properties on 'display: none' elements composite
Counter properties on 'visibility: hidden' elements composite
Implied counter scopes with no 'counter-increment' or 'counter-reset' basic
Implied counter scopes by counter use composite
Implied counter scopes by 'counter-increment' detailed
dynamic changes to 'counter-increment' composite O
dynamic changes to 'counter-increment' composite O
dynamic changes to 'counter-increment' composite O
Multiple resets for same counter composite
Multiple increments and resets composite
Order of 'counter-reset', 'counter-increment', and counter use, including pseudo-elements composite
Order of counters in out-of-flow content detailed
dynamic changes to 'counter-increment' composite O
dynamic changes to 'counter-increment' composite O
dynamic changes to 'counter-increment' composite O
counters on the root element evil
4.3.6 Colors
Color Units basic A G
RGB color syntax error handling failure
4.3.7 Strings
Newlines in strings basic
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
Grouping basic
5.3 Universal selector
5.4 Type selectors
5.5 Descendant selectors
Descendant selectors (Contextual selectors) evil
Contextual selectors evil
Contextual selectors evil
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
Class as selector evil
5.9 ID selectors
ID as selector atomic
ID as selector evil
ID selectors starting with number failure
Escapes in ID selectors basic
5.10 Pseudo-elements and pseudo-classes
Pseudo-elements in Selectors composite
5.11 Pseudo-classes
anchor evil I
anchor evil I
anchor evil I
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
anchor evil I
anchor evil I
anchor evil I
Effect of DOM mutations on :hover matching composite I O
Effect of DOM mutations on :hover matching composite I O
5.11.4 The language pseudo-class: :lang
5.12 Pseudo-elements
5.12.1 The :first-line pseudo-element
Pseudo-elements in Selectors composite
first-line basic
Multiple Pseudo-Elements composite
5.12.2 The :first-letter pseudo-element
first-letter basic
Multiple Pseudo-Elements composite
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
Inheritance evil
Inheritance evil
line-height detailed A G
line-height detailed A G
6.2.1 The 'inherit' value
6.3 The @import rule
URLs atomic G
Basic Containment basic
6.4 The cascade
anchor evil I
anchor evil I
6.4.1 Cascading order
Cascading Order basic
important basic
6.4.2 !important rules
important basic
6.4.3 Calculating a selector's specificity
Cascading Order basic
anchor evil I
anchor evil I
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
Horizontal Formatting atomic
8.2 Example of margins, padding, and borders
8.3 Margin properties: 'margin-top', 'margin-right', 'margin-bottom', 'margin-left', and 'margin'
Horizontal Formatting atomic
Vertical Formatting basic
margin-top basic A G
margin-top atomic
margin-right basic A G
margin-right basic A G
margin-right atomic
margin-right atomic
margin-right basic A G
margin-right basic A G
margin-right basic A G
margin-right composite A G
margin-right atomic
margin-right composite
margin-right composite
margin-bottom atomic
margin-bottom atomic
margin-left basic A G
margin-left basic A G
margin-left basic A G
margin-left atomic
margin-left basic A G
margin-left basic A G
margin-left basic A G
margin-left composite A G
margin-left atomic
margin-left composite
margin-left composite
margin atomic A G
margin basic A G
margin atomic
margin composite
margin composite A G
float composite A G
Horizontal Formatting detailed A G
8.3.1 Collapsing margins
Vertical Formatting basic
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
8.4 Padding properties: 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', and 'padding'
Horizontal Formatting atomic
Vertical Formatting basic
margin-right composite
margin-left composite
padding-top atomic
padding-top atomic
padding-top atomic
padding-top atomic
padding-right basic A G
padding-right basic A G
padding-right basic A G
padding-right atomic
padding-right basic A G
padding-right composite A G
padding-right atomic
padding-right failure
padding-right failure
padding-bottom atomic
padding-bottom atomic
padding-bottom atomic
padding-bottom atomic
padding-left basic A G
padding-left basic A G
padding-left basic A G
padding-left atomic
padding-left failure A G
padding-left basic A G
padding-left atomic
padding-left failure
padding-left failure G
padding basic A G
padding basic A G
padding atomic
padding failure
8.5 Border properties
Horizontal Formatting atomic
margin-right atomic
margin-left atomic
padding-right atomic
border-top-width basic
border-top-width basic G
border-top-width basic
border-top-width basic
border-top-width atomic
border-right-width basic
border-right-width basic G
border-right-width basic
border-right-width basic
border-right-width atomic
border-bottom-width basic
border-bottom-width basic G
border-bottom-width basic
border-bottom-width basic
border-bottom-width atomic
border-left-width basic
border-left-width basic G
border-left-width basic
border-left-width basic
border-left-width atomic
border-width atomic
border-width basic G
border-width basic
border-width basic
border-color atomic
border-color atomic
border-style composite
border-style atomic
border-top atomic
border-top evil
border-top atomic
border-right atomic
border-right evil
border-right evil
border-right atomic
border-bottom atomic
border-bottom evil
border-bottom atomic
border-left atomic
border-left evil
border-left evil
border-left atomic
border basic
border basic G
border evil
border atomic
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
display/box/float/clear test evil
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
Updating layout on display changes basic A O
display basic
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
Inline Elements detailed A G
9.4.3 Relative positioning
9.5 Floats
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Floating Elements detailed
Floating Elements detailed G
Floating Elements composite
Floating Elements composite
Floating Elements composite
Floating Elements detailed
Floating Elements detailed G
Floating Elements evil
Floating Elements detailed G
float detailed A G
float detailed
float detailed G
float composite A G
float composite A G
float detailed G
float composite G
float composite G
float composite G
float composite G
float basic
clear composite A G
clear composite G
9.5.1 Positioning the float: the 'float' property
Floating Elements detailed
Floating Elements basic
Floating Elements detailed G
Floating Elements basic G
Floating Elements detailed
Floating Elements detailed G
Floating Elements detailed
Floating Elements detailed
Floating Elements basic G
float basic G
float detailed G
float detailed G
9.5.2 Controlling flow next to floats: the 'clear' property
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
Margin Collapsing with Clearance detailed
clear composite A G
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"
Containing block for fixed positioning basic
Containing block for absolute positioning basic
Containing block for absolute positioning basic
Containing block for absolute positioning basic
Containing block for absolute positioning basic
Containing block for absolute positioning basic
Containing block for absolute positioning basic
Containing block for absolute positioning basic
Containing block for absolute positioning basic
10.2 Content width: the 'width' property
margin-right composite
margin-left composite
margin composite A G
padding-right failure
float composite G
width basic G
width basic G
width basic G
Horizontal Formatting detailed A G
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
Horizontal Formatting detailed A G
10.3.4 Block-level, replaced elements in normal flow
Replaced Elements detailed G
Replaced Elements detailed G
Replaced Elements detailed A G
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'
Replaced Elements detailed A G
Replaced Elements detailed A G
height basic G
10.5 Content height: the 'height' property
height basic G
height basic G
height basic G
10.6 Calculating heights and margins
10.6.1 Inline, non-replaced elements
Inline Elements atomic
10.6.2 Inline replaced elements, block-level replaced elements in normal flow, 'inline-block' replaced elements in normal flow and floating replaced elements
Replaced Elements detailed G
Replaced Elements detailed G
Replaced Elements detailed A G
Replaced Elements detailed A G
10.6.3 Block-level non-replaced elements in normal flow when 'overflow' computes to 'visible'
float detailed A G
float detailed
10.6.4 Absolutely positioned, non-replaced elements
10.6.5 Absolutely positioned, replaced elements
10.6.6 Complicated cases
float detailed G
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
The Height of Lines detailed A G
The Height of Lines detailed A G
The Height of Lines detailed A G
The Height of Lines detailed A G
Replaced Elements detailed A G
10.8.1 Leading and half-leading
Inline Elements atomic
vertical-align atomic A G
vertical-align detailed A G
vertical-align detailed A G I
vertical-align detailed A G I
vertical-align detailed A G I
line-height atomic
line-height atomic
line-height basic A G
line-height basic A G
line-height detailed A G
line-height detailed A G
font basic
font basic
font basic
font basic
font basic
font basic
font basic
font basic
font basic
font composite
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
content: counter(c) basic
content: counter(c, none) basic
content: counter(c, disc) basic
content: counter(c, circle) basic
content: counter(c, square) basic
content: counter(c, decimal) basic
content: counter(c, decimal-leading-zero) basic
content: counter(c, lower-roman) basic
content: counter(c, upper-roman) basic
content: counter(c, georgian) basic
content: counter(c, armenian) basic
content: counter(c, lower-latin) basic
content: counter(c, lower-alpha) basic
content: counter(c, upper-latin) basic
content: counter(c, upper-alpha) basic
content: counter(c, lower-greek) basic
content: counter() error cases failure
content: counters(c, ".") basic
content: counters(c, ".", none) basic
content: counters(c, ".", disc) basic
content: counters(c, ".", circle) basic
content: counters(c, ".", square) basic
content: counters(c, ".", decimal) basic
content: counters(c, ".", decimal-leading-zero) basic
content: counters(c, ".", lower-roman) basic
content: counters(c, ".", upper-roman) basic
content: counters(c, ".", georgian) basic
content: counters(c, ".", armenian) basic
content: counters(c, ".", lower-latin) basic
content: counters(c, ".", lower-alpha) basic
content: counters(c, ".", upper-latin) basic
content: counters(c, ".", upper-alpha) basic
content: counters(c, ".", lower-greek) basic
content: counters() string argument composite
content: counters() string argument detailed
content: counters() error cases failure
Counter scope basic
Counter scope and nesting on elements composite
Counter scope and nesting on :before composite
Counter scope and nesting on :after composite