1 About the CSS2 Specification
This specification has been written with two types of readers in
mind: CSS authors and CSS implementors. We hope the specification will
provide authors with the tools they need to write efficient,
attractive, and accessible documents, without overexposing them to
CSS's implementation details. Implementors, however, should find all
they need to build conforming user
agents.
The specification begins with a general presentation of CSS and
becomes more and more technical and specific towards the end. For
quick access to information, a general table of contents,
specific tables of contents at the beginning of each section,
and an index provide easy navigation, in both the electronic
and printed versions.
The specification has been written with two modes of presentation
in mind: electronic and printed. Although the two presentations will
no doubt be similar, readers will find some differences. For example,
links will not work in the printed version (obviously), and page
numbers will not appear in the electronic version. In case of a
discrepancy, the electronic version is considered the authoritative
version of the document.
The specification is organized into the following sections:
- Section 2: An introduction to CSS2
- The introduction includes a brief tutorial on CSS2 and
a discussion of design principles behind CSS2.
- Sections 3 - 20: CSS2 reference manual.
- The bulk of the reference manual consists of the CSS2 language
reference. This reference defines what may go into a CSS2 style sheet
(syntax, properties, property values) and how user agents must
interpret these style sheets in order to claim conformance.
- Appendixes:
- Appendixes contain information about a
sample style sheet for HTML 4.0, changes
from CSS1 , implementation and
performance notes,
the grammar of CSS2,
a list of normative and informative references,
and three indexes: one for
properties, one for
descriptors, and one
general index.
- CSS property, descriptor, and pseudo-class names are delimited
by single quotes.
- CSS values are delimited by single quotes.
- Document language element names are in uppercase letters.
- Document language attribute names are in lowercase letters
and delimited by double quotes.
Each CSS property definition begins with a summary of key
information that resembles the following:
-
'property-name'
-
Value: | legal values & syntax
| Initial: | initial value
| Applies to: | elements this property applies to
| Inherited: | whether the property is inherited
| Percentages: | how percentage values are interpreted
| Media: | which media groups the property applies to
|
This part specifies the set of valid values for the property. Value
types may be designated in several ways:
- keyword values (e.g., auto,
disc, etc.)
- basic data types, which appear between "<" and ">" (e.g.,
<length>, <percentage>, etc.). In the electronic version
of the document, each instance of a basic data type links to its
definition.
- types that have the same range of values as a property
bearing the same name (e.g., <'border-width'>
<'background-attachment'>, etc.). In this case, the type
name is the property name (complete with quotes) between "<" and
">" (e.g., <'border-width'>). In the electronic version of
the document, each instance of this type of non-terminal links to the
corresponding property definition.
- non-terminals that do not share the same name as a property. In this
case, the non-terminal name appears between "<" and ">", as in
<border-width>. Notice the distinction between
<border-width> and <'border-width'>; the latter is defined
in terms of the former. The definition of a non-terminal is located
near its first appearance in the specification. In the electronic
version of the document, each instance of this type of value links to
the corresponding value definition.
Other words in these definitions are keywords that must appear
literally, without quotes (e.g., red). The slash (/) and the comma (,)
must also appear literally.
Values may be arranged as follows:
- Several juxtaposed words mean that all of them must occur, in the
given order.
- A bar (|) separates two or more alternatives:
exactly one of them must occur.
- A double bar (||) separates
two or more options: one or more of them must occur, in any order.
- Brackets ([ ]) are for grouping.
Juxtaposition is stronger than the double bar, and the double bar
is stronger than the bar. Thus, the following lines are equivalent:
a b | c || d e
[ a b ] | [ c || [ d e ]]
Every type, keyword, or bracketed group may be followed by one of
the following modifiers:
-
An asterisk (*) indicates that the preceding type, word, or group
occurs zero or more times.
-
A plus (+) indicates that the preceding type, word, or group
occurs one or more times.
-
A question mark (?) indicates that the preceding type, word, or
group is optional.
-
A pair of numbers in curly braces ({A,B}) indicates that the
preceding type, word, or group occurs at least A and at most
B times.
The following examples illustrate different value types:
Value: N | NW | NE
Value: [ <length> | thick | thin ]{1,4}
Value: [<family-name> , ]* <family-name>
Value: <uri>? <color> [ / <color> ]?
Value: <uri> || <color>
This part specifies the property's initial value. If the property
is inherited, this is the value that is given to the root element of
the document tree. Please consult
the section on the cascade for information
about the interaction between style sheet-specified, inherited, and
initial values.
This part lists the elements to which the property applies. All
elements are considered to have all properties, but some properties
have no rendering effect on some types of elements. For example, 'white-space' only affects
block-level elements.
This part indicates whether the value of the property is inherited
from an ancestor element. Please consult the section on the cascade for information about the
interaction between style sheet-specified, inherited, and initial
values.
This part indicates how percentages should be interpreted, if they occur in
the value of the property. If "N/A" appears here, it means that the
property does not accept percentages as values.
This part indicates the media
groups to which the property applies. The conformance conditions state that user agents
must support this property if they support rendering to the media types included in these media groups.
Some properties are shorthand properties, meaning they allow
authors to specify the values of several properties with a single
property.
For instance, the 'font' property
is a shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', and 'font-family' all at once.
When values are omitted from a shorthand form, each
"missing" property is assigned
its initial value (see the section on the
cascade).
Example(s):
The multiple style rules of this example:
H1 {
font-weight: bold;
font-size: 12pt;
line-height: 14pt;
font-family: Helvetica;
font-variant: normal;
font-style: normal;
font-stretch: normal;
font-size-adjust: none
}
may be rewritten with a single shorthand property:
H1 { font: bold 12pt/14pt Helvetica }
In this example, 'font-variant', 'font-stretch', 'font-size-adjust', and 'font-style'
take their initial values.
All examples that illustrate illegal usage are clearly
marked as "ILLEGAL EXAMPLE".
All HTML examples conform to the HTML 4.0 strict DTD (defined in
[HTML40]) unless otherwise indicated by a document type declaration.
All notes are informative only.
Examples and notes are marked within the source HTML for the
specification and CSS1 user agents will render them specially.
Most images in the electronic version of this specification are
accompanied by "long descriptions" of what they represent. A link to
the long description is denoted by a "[D]" to the right of the image.
Images and long descriptions are informative only.
This specification is the product of the W3C Working Group on
Cascading Style Sheets and Formatting Properties. In addition to the
editors of this specification, the members of the Working Group are:
Brad Chase (Bitstream), Chris Wilson (Microsoft), Daniel Glazman
(Electricité de France), Dave Raggett (W3C/HP), Ed Tecot
(Microsoft), Jared Sorensen (Novell), Lauren Wood (SoftQuad), Laurie
Anna Kaplan (Microsoft), Mike Wexler (Adobe), Murray Maloney (Grif),
Powell Smith (IBM), Robert Stevahn (HP), Steve Byrne (JavaSoft),
Steven Pemberton (CWI), Thom Phillabaum (Netscape), Douglas Rand
(Silicon Graphics), Robert Pernett (Lotus), Dwayne Dicks (SoftQuad),
and Sho Kuwamoto (Macromedia). We thank them for their continued
efforts.
A number of invited experts to the Working Group have contributed:
George Kersher, Glenn Rippel (Bitstream), Jeff Veen (HotWired), Markku
T. Hakkinen (The Productivity Works), Martin Dürst
(W3C, formerly Universität Zürich), Roy Platon (RAL), Todd
Fahrner (Verso), Tim Boland (NIST), Eric Meyer (Case Western
Reserve University), and Vincent Quint (W3C).
The section on Web Fonts was strongly shaped by Brad Chase (Bitstream)
David Meltzer (Microsoft Typography) and Steve Zilles (Adobe). The
following people have also contributed in various ways to the section
pertaining to fonts: Alex Beamon (Apple), Ashok Saxena (Adobe), Ben
Bauermeister (HP), Dave Raggett (W3C/HP), David Opstad (Apple), David
Goldsmith (Apple), Ed Tecot (Microsoft), Erik van Blokland
(LettError), François Yergeau (Alis), Gavin Nicol (Inso),
Herbert van Zijl (Elsevier), Liam Quin, Misha Wolf (Reuters), Paul
Haeberli (SGI), and the late Phil Karlton (Netscape).
The section on Paged Media was in large parts authored by Robert
Stevahn (HP) and Stephen Waters (Microsoft).
Robert Stevahn (HP), Scott Furman (Netscape), and Scott
Isaacs (Microsoft) were key contributors to CSS Positioning.
Mike Wexler (Adobe) was the editor of the interim working draft,
which described many of the new features of CSS2.
T.V. Raman (Adobe)
made pivotal contributions towards Aural Cascading Style Sheets (ACSS)
and the concepts of aural presentation based on his work on AsTeR
(Audio System For Technical Readings). He contributed an initial draft
of the ACSS specification that shaped the current
specification. Values for aural properties in the HTML 4.0 sample style sheet are of his
devising; he currently uses them on a daily basis on his audio desktop
in conjunction with Emacspeak and the Emacs W3 browser (authored by
William Perry, who also implemented the aural extensions on the W3
side of the fence).
Todd Fahrner (Verso) researched contemporary and historical
browsers to develop the sample style sheet in the appendix.
Thanks to Jan Kärrman, author of html2ps for helping
so much in creating the PostScript version of the specification.
Through electronic and physical encounters, the following people
have contributed to the development of CSS2: Alan Borning, Robert
Cailliau, Liz Castro, James Clark, Dan Connolly, Donna Converse,
Daniel Dardailler, Al Gilman, Daniel Greene, Scott Isaacs, Geir
Ivarsøy, Vincent Mallet, Kim Marriott, Brian Michalowski, Lou
Montulli, Henrik Frystyk Nielsen, Jacob Nielsen, Eva von Pepel,
William Perry, David Siegel, Peter Stuckey, and Jason White.
The discussions on www-style@w3.org have been influential in many
key issues for CSS. Especially, we would like to thank Bjorn Backlund,
Todd Fahrner, Lars Marius Garshol, Sue Jordan, Ian Hickson, Susan
Lesch, Andrew Marshall, MegaZone, Eric Meyer, Russell O'Connor, David
Perrell, Liam Quinn, Jon Seymour, Neil St. Laurent, Taylor, Brian Wilson, and Chris
Wilson for their participation.
Many thanks to the Web Accessibility Initiative Protocols and
Formats Technical Review Working Group (WAI PF) for helping to improve
the accessibility of CSS2.
Many thanks to Philippe Le Hégaret, whose CSS validator helped
ensure correct examples and a sensible grammar.
Special thanks to Arnaud Le Hors, whose engineering contributions
made this document work.
Adam Costello improved this specification by performing a detailed
review.
Lastly, thanks to Tim Berners-Lee without whom none of this would
have been possible.
Copyright © 1997 World Wide
Web Consortium, (Massachusetts
Institute of Technology, Institut
National de Recherche en Informatique et en Automatique, Keio University). All Rights
Reserved.
Documents on the W3C site are
provided by the copyright holders under the following license. By
obtaining, using and/or copying this document, or the W3C document
from which this statement is linked, you agree that you have read,
understood, and will comply with the following terms and
conditions:
Permission to use, copy, and distribute the contents of this
document, or the W3C document from which this statement is linked, in
any medium for any purpose and without fee or royalty is hereby
granted, provided that you include the following on ALL copies
of the document, or portions thereof, that you use:
- A link or URI to the original W3C document.
- The pre-existing copyright notice of the original author, if it
doesn't exist, a notice of the form: "Copyright © World Wide Web Consortium, (Massachusetts Institute of
Technology, Institut National de
Recherche en Informatique et en Automatique, Keio University). All Rights
Reserved."
- If it exists, the STATUS of the W3C document.
When space permits, inclusion of the full text of this
NOTICE should be provided. In addition, credit shall be
attributed to the copyright holders for any software, documents, or
other items or products that you create pursuant to the implementation
of the contents of this document, or any portion thereof.
No right to create modifications or derivatives is granted pursuant
to this license.
THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING,
BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF
THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION
OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS
THEREOF.
The name and trademarks of copyright holders may NOT be used in
advertising or publicity pertaining to this document or its contents
without specific, written prior permission. Title to copyright in this
document will at all times remain with copyright holders.
|