W3C

Errata for CSS level 2 revision 1,
CR version of 19 July 2007

These are the errata for CSS level 2 revision 1, CR version of 19 July 2007. These corrections have the status of a draft.

Section 3.1 Definitions

[2007-11-14] Append For raster images without reliable resolution information, a size of 1 px unit per image source pixel must be assumed. to the definition of intrinsic dimensions.

Section 4.1.1 Tokenization

[2007-09-27] Remove DELIM? from the grammar rule

declaration : DELIM? property S* ':' S* value;

The DELIM was allowed there so that unofficial properties could start with a dash (-), but the dash was already allowed because of the definition of IDENT.

Section 4.1.3 Characters and case

[2007-11-14] In the second bullet, change [a-z0-9] to [a-zA-Z0-9]; in the third bullet, change [0-9a-f] to [0-9a-fA-F].

Although the preceding bullet already says that CSS is case-insensitive, the explicit mention of upper and lower case letters helps avoid mistakes.

Section 4.1.3 Characters and case

[2008-03-05] CSS is now case-sensitive, except for certain parts:

All CSS syntax is case-insensitive within the ASCII range (i.e. [a-z] and [A-Z] are equivalent), except for parts that are not under the control of CSS.

Section 4.3.5 Counters

[2008-03-05] Insert case-sensitive in Counters are denoted by case-sensitive identifiers.

Section 5.8.1 Matching attributes and attribute values

[2008-04-07] Clarified ~= and |= by using the definitions from the Selectors module.

Section 5.8.2 Default attribute values in DTDs

[2007-11-14] Replace tag selector by type selector.

Section 6.4.1 Cascading order

[2007-11-22] Spelling error: precendence.

Section 9.2.4 The 'display' property

[2008-04-07] Clarified that 'display: none' also applies to non-visual media.

Section 10.3.2 Inline, replaced elements

[2007-11-14] Add the following paragraph:

Otherwise, if 'width' has a computed value of 'auto', and the element has an intrinsic width, then that intrinsic width is the used value of 'width'.

just before the paragraph beginning Otherwise, if 'width' has a computed value of 'auto', but none of the conditions above are met, […].

Section 10.3.2 Inline, replaced elements

[2008-03-05] Change the last paragraph as follows:

If it does, then a percentage intrinsic width on that element can't be resolved and the element is assumed to have no intrinsic width then the resulting layout is undefined in CSS2.1.

Section 10.3.3 Block-level, non-replaced elements in normal flow

[2008-03-05] Scrollbar widths are no longer included in the containing block width. Remove scrollbar width from:

'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' + scrollbar width (if any) = width of containing block

and from:

If 'width' is not 'auto' and 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + scrollbar width (if any) [...]

and remove the paragraph:

The "scrollbar width" value is only relevant if the user agent uses a scrollbar as its scrolling mechanism. See the definition of the 'overflow' property.

Section 10.3.7 Absolutely positioned, non-replaced elements

[2008-03-05] Scrollbar widths are no longer included in the containing block width. Remove scrollbar width from:

'left' + 'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' + 'right' + scrollbar width (if any) = width of containing block

and remove the paragraph:

The "scrollbar width" value is only relevant if the user agent uses a scrollbar as its scrolling mechanism. See the definition of the 'overflow' property.

Section 10.3.7 Absolutely positioned, non-replaced elements

[2008-03-05] Add the following definition:

The static-position containing block is the containing block of a hypothetical box that would have been the first box of the element if its 'position' property had been 'static' and its 'float' had been 'none'.

And change which 'direction' property is used as follows (two occurrences):

[...] if the 'direction' property of the element establishing the static-position containing block is [...]

Section 10.3.8 Absolutely positioned, replaced elements

[2008-03-05] Change bullet 2 as follows:

[...] if the 'direction' property of the element establishing the static-position containing block is [...]

Section 10.3.8 Absolutely positioned, replaced elements

[2008-03-05] Clarification. Replace

This situation is similar to the previous one, except that the element has an intrinsic width. The sequence of substitutions is now:

by

In this case, section 10.3.7 applies up through and including the constraint equation, but the rest of section 10.3.7 is replaced by the following rules:

Section 10.3.8 Absolutely positioned, replaced elements

[2008-04-07] Clarified that margins are not calculated as for inline elements.

Section 10.6.2 Inline replaced elements […]

[2007-11-14] Add the following paragraph:

Otherwise, if 'height' has a computed value of 'auto', and the element has an intrinsic height, then that intrinsic height is the used value of 'height'.

just before the paragraph beginning Otherwise, if 'height' has a computed value of 'auto', but none of the conditions above are met […].

Section 10.6.5 Absolutely positioned, replaced elements

[2008-04-07] Clarified that margins are not calculated as for inline elements.

Section 10.8.1 Leading and half-leading

[2007-11-14] In the Note under 'vertical-align', remove slightly from Values of this property have slightly different meanings in the context of tables.

Section 11.1.1 Overflow: the 'overflow' property

[2008-03-05] Scrollbar widths are no longer included in the containing block width. Replace

The space taken up by the scrollbars affects the computation of the dimensions in the rendering model.

by

Any space taken up by the scrollbars should be taken out of (subtracted from the dimensions of) the containing block formed by the element with the scrollbars.

Section 11.1.2 Clipping: the 'clip' property

[2008-03-05] Insert (but not a combination) in User agents must support separation with commas, but may also support separation without commas (but not a combination).

Section 12.4.2 Counter styles

[2008-03-05] Error in example. Replace hebrew by lower-greek:

BLOCKQUOTE:after { content: " [" counter(bq, hebrew lower-greek) "]" }

Section 12.5.1 Lists: the 'list-style-type', 'list-style-image', 'list-style-position', and 'list-style' properties

[2008-04-07] The size of list style markers without an intrinsic size is now defined.

Section 14.2.1 Background properties: 'background-color', 'background-image', 'background-repeat', 'background-attachment', 'background-position', and 'background'

[2008-04-07] The size of background images without an intrinsic size is now defined.

Section 17.2.1 Anonymous table objects

[2007-11-14] Spelling error: boxess.

Section 17.5.4 Horizontal alignment in a column

[2008-04-07] Clarification:

The horizontal alignment of a cell's inline content within a cell box is can be specified with the 'text-align' property.

Section 18.1 Cursors: the 'cursor' property

[2008-04-07] The size of cursors without an intrinsic size is now defined.

Section B.2 Informative references

[2007-11-14] Spelling error: change ?lik to Çelik (2×).

Section E.2 Painting order

[2007-11-14] Replace but any descendants which actually create a new stacking context by but any positioned descendants and descendants which actually create a new stacking context.

Appendix G. Grammar of CSS 2.1

[2007-09-27] Change the last S in the grammar rule for combinator to S+:

combinator
  : PLUS S*
  | GREATER S*
  | S+

and remove the rule

{s}+\/\*[^*]*\*+([^/*][^*]*\*+)*\/  {unput(' '); /*replace by space*/}

in the tokenizer. The resulting language is the same, but the grammar is easier to read and relies less on specific notations of Flex.

Section G.2 Lexical scanner

[2007-09-27] Change the tokenizer rule

@{C}{H}{A}{R}{S}{E}{T}	{return CHARSET_SYM;}

to

"@charset "  {return CHARSET_SYM;}

The @charset must be in lowercase and must have a space after it (as defined in section  4.4 CSS style sheet representation).

Section G.2 Lexical scanner

[2008-03-05] Change the tokenizer rules

"url("{w}{string}{w}")" {return URI;}
"url("{w}{url}{w}")"    {return URI;}

to

{U}{R}{L}"("{w}{string}{w}")"	{return URI;}
{U}{R}{L}"("{w}{url}{w}")"	{return URI;}

Section G2 Lexical scanner

[2008-04-07] The definition of the macro “O” is wrong. The letters O and o can be written with hexadecimal escapes as “\4f” and “\6f” respectively (not as “\51” and “\71”). The macro should therefore be

O		o|\\0{0,4}(4f|6f)(\r\n|[ \t\r\n\f])?|\\o
Bert Bos
Created: 17 July 2007
Last modified: $Date: 2008/04/07 18:30:15 $