1 About the CSS2 Specification
1.1 Reading the specification
1.2 How the specification is organized
1.3 Conventions
1.3.1 Document language elements and attributes
1.3.2 CSS property definitions
Value
Initial
Applies to
Inherited
Percentage values
Media groups
1.3.3 Shorthand properties
1.3.4 Notes and examples
1.3.5 Images and long descriptions
1.4 Acknowledgments
1.5 Copyright Notice
2 Introduction to CSS2
2.1 A brief CSS2 tutorial for HTML
2.2 A brief CSS2 tutorial for XML
2.3 The CSS2 processing model
2.3.1 The canvas
2.3.2 CSS2 addressing model
2.4 CSS design principles
3 Conformance: Requirements and Recommendations
3.1 Definitions
3.2 Conformance
3.3 Error conditions
3.4
The text/css content type
4 CSS2 syntax and basic data types
4.1 Syntax
4.1.1 Tokenization
4.1.2 Keywords
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 URL + URN = URI
4.3.5 Counters
4.3.6 Colors
4.3.7 Angles
4.3.8 Times
4.3.9 Frequencies
4.3.10 Strings
4.4 CSS document 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
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-bottom'
,
'border-right'
,
'border-left'
, and
'border'
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
Anonymous block boxes
9.2.2 Inline-level elements and inline boxes
Anonymous inline boxes
9.2.3 Compact boxes
9.2.4 Run-in boxes
9.2.5 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 context
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 Computing 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.4 Minimum and maximum widths:
'min-width'
and
'max-width'
10.5 Content height: the
'height'
property
10.6 Computing heights and margins
10.6.1 Inline, non-replaced elements
10.6.2 Inline, replaced elements block-level, replaced elements in normal flow, and floating, replaced elements
10.6.3 Block-level, non-replaced elements in normal flow, and floating, non-replaced elements
10.6.4 Absolutely positioned, non-replaced elements
10.6.5 Absolutely positioned, replaced elements
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 Interaction of :before and :after with
'compact'
and
'run-in'
elements
12.4 Quotation marks
12.4.1 Specifying quotes with the
'quotes'
property
12.4.2 Inserting quotes with the
'content'
property
12.5 Automatic
counters
and numbering
12.5.1 Nested counters and scope
12.5.2 Counter styles
12.5.3 Counters in elements with 'display: none'
12.6 Markers and lists
12.6.1 Markers: the
'marker-offset'
property
12.6.2 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.2 Page size: the
'size'
property
Rendering page boxes that do not fit a target sheet
Positioning the page box on the sheet
13.2.3 Crop marks: the
'marks'
property
13.2.4 Left, right, and first pages
13.2.5 Content outside the page box
13.3 Page breaks
13.3.1 Break before/after elements:
'page-break-before'
,
'page-break-after'
,
'page-break-inside'
13.3.2 Using named pages:
'page'
13.3.3 Breaks inside elements:
'orphans'
,
'widows'
13.3.4 Allowed page breaks
13.3.5 Forced page breaks
13.3.6 "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 specification
15.2.1 Font specification properties
15.2.2 Font family: the
'font-family'
property
15.2.3 Font styling: the
'font-style'
,
'font-variant'
,
'font-weight'
and
'font-stretch'
properties
15.2.4 Font size: the
'font-size'
and
'font-size-adjust'
properties
15.2.5 Shorthand font property: the
'font'
property
15.2.6 Generic font families
serif
sans-serif
cursive
fantasy
monospace
15.3 Font selection
15.3.1
Font Descriptions
and @font-face
15.3.2 Descriptors for Selecting a Font:
'font-family'
,
'font-style'
,
'font-variant'
,
'font-weight'
,
'font-stretch'
and
'font-size'
15.3.3 Descriptors for Font Data Qualification:
'unicode-range'
15.3.4 Descriptor for Numeric Values:
'units-per-em'
15.3.5 Descriptor for Referencing:
'src'
15.3.6 Descriptors for Matching:
'panose-1'
,
'stemv'
,
'stemh'
,
'slope'
,
'cap-height'
,
'x-height'
,
'ascent'
, and
'descent'
15.3.7 Descriptors for Synthesis:
'widths'
,
'bbox'
and
'definition-src'
15.3.8 Descriptors for Alignment:
'baseline'
,
'centerline'
,
'mathline'
, and
'topline'
15.3.9 Examples
15.4 Font Characteristics
15.4.1 Introducing Font Characteristics
15.4.2 Full font name
15.4.3 Coordinate units on the em square
15.4.4 Central Baseline
15.4.5 Font Encoding
15.4.6 Font family name
15.4.7 Glyph widths
15.4.8 Horizontal stem width
15.4.9 Height of uppercase glyphs
15.4.10 Height of lowercase glyphs
15.4.11 Lower Baseline
15.4.12 Mathematical Baseline
15.4.13 Maximal bounding box
15.4.14 Maximum unaccented height
15.4.15 Maximum unaccented depth
15.4.16 Panose-1 number
15.4.17 Range of ISO 10646 characters
15.4.18 Top Baseline
15.4.19 Vertical stem width
15.4.20 Vertical stroke angle
15.5 Font matching algorithm
15.5.1 Mapping font weight values to font names
15.5.2 Examples of font matching
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.3.2 Text shadows: the
'text-shadow'
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
17 Tables
17.1 Introduction to tables
17.2 The CSS table model
17.2.1 Anonymous table objects
17.3 Column selectors
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
Fixed table layout
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
Borders around empty cells: the
'empty-cells'
property
17.6.2 The collapsing border model
Border conflict resolution
17.6.3 Border styles
17.7 Audio rendering of tables
17.7.1 Speaking headers: the
'speak-header'
property
18 User interface
18.1 Cursors: the
'cursor'
property
18.2 User preferences for colors
18.3 User preferences for fonts
18.4 Dynamic outlines: the
'outline'
property
18.4.1 Outlines and the focus
18.5 Magnification
19 Aural style sheets
19.1 Introduction to aural style sheets
19.2 Volume properties:
'volume'
19.3 Speaking properties:
'speak'
19.4 Pause properties:
'pause-before'
,
'pause-after'
, and
'pause'
19.5 Cue properties:
'cue-before'
,
'cue-after'
, and
'cue'
19.6 Mixing properties:
'play-during'
19.7 Spatial properties:
'azimuth'
and
'elevation'
19.8 Voice characteristic properties:
'speech-rate'
,
'voice-family'
,
'pitch'
,
'pitch-range'
,
'stress'
, and
'richness'
19.9 Speech properties:
'speak-punctuation'
and
'speak-numeral'
Appendix A. A sample style sheet for HTML 4.0
Appendix B. Changes from CSS1
B.1 New functionality
B.2 Updated descriptions
B.3 Semantic changes from CSS1
Appendix C. Implementation and performance notes for fonts
C.1 Glossary of font terms
C.2 Font retrieval
C.3 Meaning of the Panose Digits
C.4 Deducing Unicode Ranges for TrueType
C.5 Automatic descriptor generation
Appendix D. The grammar of CSS2
D.1 Grammar
D.2 Lexical scanner
D.3 Comparison of tokenization in CSS2 and CSS1
Appendix E. References
E.1 Normative references
E.2 Informative references
Appendix F. Property index
Appendix G. Descriptor index
Appendix H. Index