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 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)
Shorthand Properties (font)
Shorthand Properties (font)
Shorthand Properties (font)
Shorthand Properties (font)
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
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 v. Strings (background)
Keywords v. Strings (width)
4.1.2.1 Vendor-specific extensions
4.1.2.2 Informative Historical Notes
4.1.3 Characters and case
Case-sensitivity of Properties and Keywords (background)
Case-sensitivity of At-rules (@media)
Escaped Newline in String
Escaped Quote Marks in String
Invalid Punctuation Escapes
Class and Keyword Letter Escapes
Unicode Escapes
Unicode Escapes and Case Insensitivity
Incorrect Letter Escape (Class Selector)
Space-terminated Unicode Escapes
Invalid Space-terminated Character Escapes
Characters and case: Escaping a character inside a keyword invalid
Unicode-escaped Braces invalid
Valid Identifiers (a-z) as Classes and IDs
Valid Identifiers (-_a-zA-Z0-9) as Classes and IDs
Valid Identifiers (starting with _) as Classes and IDs
Valid Identifiers (starting with -) as Classes and IDs
Valid Identifiers (starting with ideographic) as Classes and IDs
Valid Identifiers (including ideographic) as Classes and IDs
Valid Identifiers (starting with escape) as Classes and IDs
Valid Identifiers (including escape) as Classes and IDs
Invalid Identifiers (starting with digit) as Classes and IDs invalid
Valid Identifiers (including digits) as Classes and IDs
Valid Identifiers (starting with escape) as Classes and IDs
Valid Identifiers (including escapes) as Classes and IDs
Valid Identifiers (starting with escaped digits, control codes) as Classes and IDs
Valid Identifiers (starting with escaped -) as Classes and IDs
4.1.4 Statements
4.1.5 At-rules
At-rules
At-rules
At-rules
At-rules
At-rules
At-rules
At-rules
At-rules
At-rules
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
SGML comments
Comments
Comments
Basic Containment
4.2 Rules for handling parsing errors
malformed declaration missing ':', value, part 1 invalid
malformed declaration missing ':', value, part 2 invalid
malformed declaration missing value, part 1 invalid
malformed declaration missing value, part 2 invalid
malformed declaration: unexpected tokens { }, part 1 invalid
malformed declaration: unexpected tokens { }, part 2 invalid
Forward-Compatible Parsing
Forward-Compatible Parsing
Forward-Compatible Parsing
Forward-Compatible Parsing
Forward-Compatible Parsing
4.3 Values
4.3.1 Integers and real numbers
4.3.2 Lengths
Length Units
Length Units
Length Units A G
padding-top
padding-left A G
padding A G
text-indent
4.3.3 Percentages
Percentage Units A G
4.3.4 URLs and URIs
URLs G
Basic Containment
4.3.5 Counters
content: counter(c)
content: counter(c, none)
content: counter(c, disc)
content: counter(c, circle)
content: counter(c, square)
content: counter(c, decimal)
content: counter(c, decimal-leading-zero)
content: counter(c, lower-roman)
content: counter(c, upper-roman)
content: counter(c, georgian)
content: counter(c, armenian)
content: counter(c, lower-latin)
content: counter(c, lower-alpha)
content: counter(c, upper-latin)
content: counter(c, upper-alpha)
content: counter(c, lower-greek)
content: counter() error cases invalid
content: counters(c, ".")
content: counters(c, ".", none)
content: counters(c, ".", disc)
content: counters(c, ".", circle)
content: counters(c, ".", square)
content: counters(c, ".", decimal)
content: counters(c, ".", decimal-leading-zero)
content: counters(c, ".", lower-roman)
content: counters(c, ".", upper-roman)
content: counters(c, ".", georgian)
content: counters(c, ".", armenian)
content: counters(c, ".", lower-latin)
content: counters(c, ".", lower-alpha)
content: counters(c, ".", upper-latin)
content: counters(c, ".", upper-alpha)
content: counters(c, ".", lower-greek)
content: counters() string argument
content: counters() string argument
content: counters() error cases invalid
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
Counter properties on 'content: none' pseudo-elements
Counter properties on 'display: none' elements
Counter properties on 'visibility: hidden' elements
Multiple resets for same counter
Multiple increments and resets
Order of 'counter-reset', 'counter-increment', and counter use, including pseudo-elements
Order of counters in out-of-flow content
counters on the root element
Counter scope
Counter scope and nesting on elements
Counter scope and nesting on :before
Counter scope and nesting on :after
Counter scope and nesting
Implied counter scopes with no 'counter-increment' or 'counter-reset'
Implied counter scopes by counter use
Implied counter scopes by 'counter-increment'
4.3.6 Colors
RGB color syntax error handling invalid
Color Units A G
4.3.7 Strings
Newlines in 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
Grouping
5.3 Universal selector
5.4 Type selectors
5.5 Descendant selectors
Descendant selectors (Contextual selectors)
Contextual selectors
Contextual 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
Class as selector
5.9 ID selectors
ID as selector
ID as selector
5.10 Pseudo-elements and pseudo-classes
Pseudo-elements in Selectors
5.11 Pseudo-classes
anchor I
anchor I
anchor 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 I
anchor I
anchor I
Effect of DOM mutations on :hover matching I O
Effect of DOM mutations on :hover matching 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
first-line
Multiple Pseudo-Elements
5.12.2 The :first-letter pseudo-element
:first-letter applied to joined text
first-letter and inherent rtl
:first-letter and direction:rtl - inherent ltr text
:first-letter and bidi-override - inherent ltr text
:first-letter and bidi-override - inherent rtl text
:first-letter in the middle of the line because of bidi reordering
first-letter
Multiple Pseudo-Elements
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
Inheritance
line-height A G
line-height A G
6.2.1 The 'inherit' value
6.3 The @import rule
URLs G
Basic Containment
6.4 The cascade
anchor I
anchor I
6.4.1 Cascading order
Cascading Order
important
6.4.2 !important rules
important
6.4.3 Calculating a selector's specificity
Cascading Order
anchor I
anchor 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
8.2 Example of margins, padding, and borders
8.3 Margin properties: 'margin-top', 'margin-right', 'margin-bottom', 'margin-left', and 'margin'
Horizontal Formatting
Vertical Formatting
margin-top A G
margin-top
margin-right A G
margin-right A G
margin-right
margin-right
margin-right A G
margin-right A G
margin-right A G
margin-right A G
margin-right
margin-right
margin-right
margin-bottom
margin-bottom
margin-left A G
margin-left A G
margin-left A G
margin-left
margin-left A G
margin-left A G
margin-left A G
margin-left A G
margin-left
margin-left
margin-left
margin A G
margin A G
margin
margin
margin A G
float A G
Horizontal Formatting A G
8.3.1 Collapsing margins
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Vertical Formatting
8.4 Padding properties: 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', and 'padding'
Horizontal Formatting
Vertical Formatting
margin-right
margin-left
padding-top
padding-top
padding-top
padding-top
padding-right A G
padding-right A G
padding-right A G
padding-right
padding-right A G
padding-right A G
padding-right
padding-right
padding-right
padding-bottom
padding-bottom
padding-bottom
padding-bottom
padding-left A G
padding-left A G
padding-left A G
padding-left
padding-left A G
padding-left A G
padding-left
padding-left
padding-left G
padding A G
padding A G
padding
padding
8.5 Border properties
Horizontal Formatting
margin-right
margin-left
padding-right
border-top-width
border-top-width G
border-top-width
border-top-width
border-top-width
border-right-width
border-right-width G
border-right-width
border-right-width
border-right-width
border-bottom-width
border-bottom-width G
border-bottom-width
border-bottom-width
border-bottom-width
border-left-width
border-left-width G
border-left-width
border-left-width
border-left-width
border-width
border-width G
border-width
border-width
border-color
border-color
border-style
border-style
border-top
border-top
border-top
border-right
border-right
border-right
border-right
border-bottom
border-bottom
border-bottom
border-left
border-left
border-left
border-left
border
border G
border
border
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
bidirection box model - borders on inline in normal block
bidirection box model - borders on inline in embed block
bidirection box model - borders on inline in bidi-override block
bidirection box model - borders on normal inline
bidirection box model - borders on embed inline
bidirection box model - borders on bidi-override inline
bidirection box model - borders on normal block
bidirection box model - borders on embed block
bidirection box model - borders on bidi-override block
bidirection box model - margin-left on bidi-override inline
bidirection box model - margin-left on normal inline
bidirection box model - margin-left on embed inline
bidirection box model - margin-left on inline in bidi-override block
bidirection box model - margin-left on inline in normal block
bidirection box model - margin-left on inline in embed block
bidirection box model - margin-left on bidi-override block
bidirection box model - margin-left on normal block
bidirection box model - margin-left on embed block
bidirection box model - margin-right on bidi-override inline
bidirection box model - margin-right on normal inline
bidirection box model - margin-right on embed inline
bidirection box model - margin-right on inline in bidi-override block
bidirection box model - margin-right on inline in normal block
bidirection box model - margin-right on inline in embed block
bidirection box model - margin-right on bidi-override block
bidirection box model - margin-right on normal block
bidirection box model - margin-right on embed block
bidirection box model - padding-left on bidi-override inline
bidirection box model - padding-left on inline in normal block
bidirection box model - padding-left on inline in embed block
bidirection box model - padding-left on inline in bidi-override block
bidirection box model - padding-left on normal inline
bidirection box model - padding-left on embed inline
bidirection box model - padding-left on bidi-override block
bidirection box model - padding-left on normal block
bidirection box model - padding-left on embed block
bidirection box model - padding-right on bidi-override inline
bidirection box model - padding-right on inline in normal block
bidirection box model - padding-right on inline in embed block
bidirection box model - padding-right on inline in bidi-override block
bidirection box model - padding-right on normal inline
bidirection box model - padding-right on embed inline
bidirection box model - padding-right on bidi-override block
bidirection box model - padding-right on normal block
bidirection box model - padding-right on embed block
9 Visual formatting model
display/box/float/clear test
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
page-break-after (inline elements) P
Updating layout on display changes A O
display
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 A G
9.4.3 Relative positioning
9.5 Floats
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Floating Elements
Floating Elements G
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements G
Floating Elements
Floating Elements G
float A G
float
float G
float A G
float A G
float G
float G
float G
float G
float G
float
clear A G
clear G
9.5.1 Positioning the float: the 'float' property
Floating Elements
Floating Elements
Floating Elements G
Floating Elements G
Floating Elements
Floating Elements G
Floating Elements
Floating Elements
Floating Elements G
float G
float G
float G
9.5.2 Controlling flow next to floats: the 'clear' property
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
clear 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
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
page-break-inside:auto P
10.2 Content width: the 'width' property
margin-right
margin-left
margin A G
padding-right
float G
width G
width G
width G
Horizontal Formatting 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 A G
10.3.4 Block-level, replaced elements in normal flow
Replaced Elements G
Replaced Elements G
Replaced Elements 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 A G
Replaced Elements A G
height G
10.5 Content height: the 'height' property
page-break-inside:auto P
height G
height G
height G
10.6 Calculating heights and margins
10.6.1 Inline, non-replaced elements
Inline 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
Replaced Elements G
Replaced Elements G
Replaced Elements A G
Replaced Elements A G
10.6.3 Block-level non-replaced elements in normal flow when 'overflow' computes to 'visible'
float A G
float
10.6.4 Absolutely positioned, non-replaced elements
10.6.5 Absolutely positioned, replaced elements
10.6.6 Complicated cases
float 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 A G
The Height of Lines A G
The Height of Lines A G
The Height of Lines A G
Replaced Elements A G
10.8.1 Leading and half-leading
Inline Elements
vertical-align A G
vertical-align A G
vertical-align A G I
vertical-align A G I
vertical-align A G I
line-height
line-height
line-height A G
line-height A G
line-height A G
line-height A G
font
font
font
font
font
font
font
font
font
font
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: with character forced bidi - rlo
content: counter(c)
content: counter(c, none)
content: counter(c, disc)
content: counter(c, circle)
content: counter(c, square)
content: counter(c, decimal)
content: counter(c, decimal-leading-zero)
content: counter(c, lower-roman)
content: counter(c, upper-roman)
content: counter(c, georgian)
content: counter(c, armenian)
content: counter(c, lower-latin)
content: counter(c, lower-alpha)
content: counter(c, upper-latin)
content: counter(c, upper-alpha)
content: counter(c, lower-greek)
content: counter() error cases invalid
content: counters(c, ".")
content: counters(c, ".", none)
content: counters(c, ".", disc)
content: counters(c, ".", circle)
content: counters(c, ".", square)
content: counters(c, ".", decimal)
content: counters(c, ".", decimal-leading-zero)
content: counters(c, ".", lower-roman)
content: counters(c, ".", upper-roman)
content: counters(c, ".", georgian)
content: counters(c, ".", armenian)
content: counters(c, ".", lower-latin)
content: counters(c, ".", lower-alpha)
content: counters(c, ".", upper-latin)
content: counters(c, ".", upper-alpha)
content: counters(c, ".", lower-greek)
content: counters() string argument
content: counters() string argument
content: counters() error cases invalid
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
Counter properties on 'content: none' pseudo-elements
Counter properties on 'display: none' elements
Counter properties on 'visibility: hidden' elements
Multiple resets for same counter
Multiple increments and resets
Order of 'counter-reset', 'counter-increment', and counter use, including pseudo-elements
Order of counters in out-of-flow content
counters on the root element
Counter scope
Counter scope and nesting on elements
Counter scope and nesting on :before
Counter scope and nesting on :after
Counter scope and nesting
Implied counter scopes with no 'counter-increment' or 'counter-reset'
Implied counter scopes by counter use
Implied counter scopes by 'counter-increment'
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
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
Counter properties on 'content: none' pseudo-elements
Counter properties on 'display: none' elements
Counter properties on 'visibility: hidden' elements
Multiple resets for same counter
Multiple increments and resets
Order of 'counter-reset', 'counter-increment', and counter use, including pseudo-elements
Order of counters in out-of-flow content
counters on the root element
Counter scope
Counter scope and nesting on elements
Counter scope and nesting on :before
Counter scope and nesting on :after
Counter scope and nesting
Implied counter scopes with no 'counter-increment' or 'counter-reset'
Implied counter scopes by counter use
Implied counter scopes by 'counter-increment'
12.4.1 Nested counters and scope
Counter scope
Counter scope and nesting on elements
Counter scope and nesting on :before
Counter scope and nesting on :after
Counter scope and nesting
12.4.2 Counter styles
content: counter(c)
content: counter(c, none)
content: counter(c, disc)
content: counter(c, circle)
content: counter(c, square)
content: counter(c, decimal)
content: counter(c, decimal-leading-zero)
content: counter(c, lower-roman)
content: counter(c, upper-roman)
content: counter(c, georgian)
content: counter(c, armenian)
content: counter(c, lower-latin)
content: counter(c, lower-alpha)
content: counter(c, upper-latin)
content: counter(c, upper-alpha)
content: counter(c, lower-greek)
content: counter() error cases invalid
content: counters(c, ".")
content: counters(c, ".", none)
content: counters(c, ".", disc)
content: counters(c, ".", circle)
content: counters(c, ".", square)
content: counters(c, ".", decimal)
content: counters(c, ".", decimal-leading-zero)
content: counters(c, ".", lower-roman)
content: counters(c, ".", upper-roman)
content: counters(c, ".", georgian)
content: counters(c, ".", armenian)
content: counters(c, ".", lower-latin)
content: counters(c, ".", lower-alpha)
content: counters(c, ".", upper-latin)
content: counters(c, ".", upper-alpha)
content: counters(c, ".", lower-greek)
content: counters() string argument
content: counters() string argument
content: counters() error cases invalid
12.4.3 Counters in elements with 'display: none'
Counter properties on 'content: none' pseudo-elements
Counter properties on 'display: none' elements
Counter properties on 'visibility: hidden' elements
12.5 Lists
display
list-style-type
list-style-type
list-style-image G
list-style-position
list-style-position
list-style A G
list-style G
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
@page margins shorthand using fixed physical units P
@page margins on top and right using percentages P
@page margins on bottom and left using percentages P
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'
page-break-after: always P
page-break-after: auto P
page-break-after (inline elements) P
page-break-after (no inherit) P
page-break-after (invalid syntax) invalid P
page-break-before: always P
page-break-before :auto P
page-break-before inline elements P
page-break-inside:auto P
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
Inheritance
color
14.2 The background
The Canvas
14.2.1 Background properties: 'background-color', 'background-image', 'background-repeat', 'background-attachment', 'background-position', and 'background'
float G
float G
float G
clear G
background-color
background-color
background-image
background-image G
background-repeat A G
background-repeat A G
background-repeat A G
background-repeat A G
background-repeat A G
background-repeat A G
background-repeat A G
background-repeat A G
background-attachment G
background-position A G
background-position A G
background A G
Replaced Elements A G
14.3 Gamma correction
15 Fonts
15.1 Introduction
15.2 Font matching algorithm
15.3 Font family: the 'font-family' property
font-family
font
font
font
font
font
font
font
font
font
font
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
font-style
text-decoration G
font
font
font
font
font
font
font
15.5 Small-caps: the 'font-variant' property
font-variant
font
font
font
font
font
font
font
15.6 Font boldness: the 'font-weight' property
font-weight
font
font
font
font
font
font
15.7 Font size: the 'font-size' property
font-size
font-size
font-size
font-size
font
font
font
font
font
font
font
font
font
font
font
15.8 Shorthand font property: the 'font' property
font
font
font
font
font
font
font
font
font
font
font
16 Text
16.1 Indentation: the 'text-indent' property
text-indent
text-indent
16.2 Alignment: the 'text-align' property
margin-right A G
margin-left A G
padding-right A G
padding-right
padding-left A G
padding-left
Floating Elements
Replaced Elements A G
text-align
16.3 Decoration
16.3.1 Underlining, overlining, striking, and blinking: the 'text-decoration' property
Inheritance
16.4 Letter and word spacing: the 'letter-spacing' and 'word-spacing' properties
word-spacing
word-spacing
letter-spacing
letter-spacing
16.5 Capitalization: the 'text-transform' property
text-transform A G
16.6 Whitespace: the 'white-space' property
white-space A G
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
Border Conflict Resolution (width) - hidden/hidden
Border Conflict Resolution (width) - hidden/double
Border Conflict Resolution (width) - hidden/solid
Border Conflict Resolution (width) - hidden/dashed
Border Conflict Resolution (width) - hidden/dotted
Border Conflict Resolution (width) - hidden/ridge
Border Conflict Resolution (width) - hidden/outset
Border Conflict Resolution (width) - hidden/groove
Border Conflict Resolution (width) - hidden/inset
Border Conflict Resolution (width) - hidden/none
Border Conflict Resolution (width) - double/hidden
Border Conflict Resolution (width) - double/double
Border Conflict Resolution (width) - double/solid
Border Conflict Resolution (width) - double/dashed
Border Conflict Resolution (width) - double/dashed
Border Conflict Resolution (width) - double/ridge
Border Conflict Resolution (width) - double/outset
Border Conflict Resolution (width) - double/groove
Border Conflict Resolution (width) - double/inset
Border Conflict Resolution (width) - double/none
Border Conflict Resolution (width) - solid/hidden
Border Conflict Resolution (width) - solid/double
Border Conflict Resolution (width) - solid/solid
Border Conflict Resolution (width) - solid/dashed
Border Conflict Resolution (width) - solid/dotted
Border Conflict Resolution (width) - solid/ridge
Border Conflict Resolution (width) - solid/outset
Border Conflict Resolution (width) - solid/groove
Border Conflict Resolution (width) - solid/inset
Border Conflict Resolution (width) - solid/none
Border Conflict Resolution (width) - dashed/hidden
Border Conflict Resolution (width) - dashed/double
Border Conflict Resolution (width) - dashed/solid
Border Conflict Resolution (width) - dashed/dashed
Border Conflict Resolution (width) - dashed/dotted
Border Conflict Resolution (width) - dashed/ridge
Border Conflict Resolution (width) - dashed/outset
Border Conflict Resolution (width) - dashed/groove
Border Conflict Resolution (width) - dashed/inset
Border Conflict Resolution (width) - dashed/none
Border Conflict Resolution (width) - dotted/hidden
Border Conflict Resolution (width) - dotted/double
Border Conflict Resolution (width) - dotted/solid
Border Conflict Resolution (width) - dotted/dashed
Border Conflict Resolution (width) - dotted/dotted
Border Conflict Resolution (width) - dotted/ridge
Border Conflict Resolution (width) - dotted/outset
Border Conflict Resolution (width) - dotted/groove
Border Conflict Resolution (width) - dotted/inset
Border Conflict Resolution (width) - dotted/none
Border Conflict Resolution (width) - ridge/hidden
Border Conflict Resolution (width) - ridge/double
Border Conflict Resolution (width) - ridge/solid
Border Conflict Resolution (width) - ridge/dashed
Border Conflict Resolution (width) - ridge/dotted
Border Conflict Resolution (width) - ridge/ridge
Border Conflict Resolution (width) - ridge/outset
Border Conflict Resolution (width) - ridge/groove
Border Conflict Resolution (width) - ridge/inset
Border Conflict Resolution (width) - ridge/none
Border Conflict Resolution (width) - outset/hidden
Border Conflict Resolution (width) - outset/double
Border Conflict Resolution (width) - outset/solid
Border Conflict Resolution (width) - outset/dashed
Border Conflict Resolution (width) - outset/dotted
Border Conflict Resolution (width) - outset/ridge
Border Conflict Resolution (width) - outset/outset
Border Conflict Resolution (width) - outset/groove
Border Conflict Resolution (width) - outset/inset
Border Conflict Resolution (width) - outset/none
Border Conflict Resolution (width) - groove/hidden
Border Conflict Resolution (width) - groove/double
Border Conflict Resolution (width) - groove/solid
Border Conflict Resolution (width) - groove/dashed
Border Conflict Resolution (width) - groove/dotted
Border Conflict Resolution (width) - groove/ridge
Border Conflict Resolution (width) - groove/outset
Border Conflict Resolution (width) - groove/groove
Border Conflict Resolution (width) - groove/inset
Border Conflict Resolution (width) - groove/none
Border Conflict Resolution (width) - inset/hidden
Border Conflict Resolution (width) - inset/double
Border Conflict Resolution (width) - inset/solid
Border Conflict Resolution (width) - inset/dashed
Border Conflict Resolution (width) - inset/dotted
Border Conflict Resolution (width) - inset/ridge
Border Conflict Resolution (width) - inset/outset
Border Conflict Resolution (width) - inset/groove
Border Conflict Resolution (width) - inset/inset
Border Conflict Resolution (width) - inset/none
Border Conflict Resolution (width) - none/hidden
Border Conflict Resolution (width) - none/double
Border Conflict Resolution (width) - none/solid
Border Conflict Resolution (width) - none/dashed
Border Conflict Resolution (width) - none/dotted
Border Conflict Resolution (width) - none/ridge
Border Conflict Resolution (width) - inset/outset
Border Conflict Resolution (width) - none/groove
Border Conflict Resolution (width) - none/inset
Border Conflict Resolution (width) - none/none
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 CSS2.1
G.1 Grammar
G.2 Lexical scanner
G.3 Comparison of tokenization in CSS2.1 and CSS1
Appendix I. Index
Informative