<?xml version='1.0' encoding='UTF-8'?>

  <inform-div1 id="changes">
    <head>Changes from CSS1</head>
<p><emph>This appendix is informative, not normative.</emph></p>

<p>CSS2 builds on CSS1 and all valid CSS1 style sheets are valid CSS2
style sheets. The changes between the CSS1 specification (see
<bibref ref="ref-CSS1"/>) and this specification fall into three groups: new
functionality, updated descriptions of CSS1 functionality, and changes
to CSS1.</p>

    <div2 id="changes1"><head>New functionality</head>
<p>In addition to the functionality of CSS1, CSS2 supports:</p>

<ulist>

<item><p>The concept of <titleref ref="media">media types</titleref>.</p></item>

<item><p>The <literal>inherit</literal> value for all properties.</p></item>

<item><p><titleref ref="page">Paged media</titleref></p></item>

<item><p><titleref ref="aural">Aural style sheets</titleref></p></item>

<item><p>Several internationalization features, including<termref def="lists">list numbering styles</termref>, support for<termref def="direction">bidirectional text</termref>, and support for
language-sensitive <termref def="quotes">quotation
marks</termref>.</p></item>

<item><p><titleref ref="font-selection">An extended font selection</titleref>
mechanism, including intelligent matching, synthesis, and downloadable
fonts. Also, the concept of system fonts has been is introduced, and a
new property, <property>font-size-adjust</property>, has been added.</p></item>

<item><p><titleref ref="tables">Tables</titleref>, including new values on <property>display</property> and <property>vertical-align</property>.</p></item>

<item><p><termref def="relative-positioning">Relative</termref> and <termref def="absolute-positioning">absolute positioning</termref>,
including <termref def="fixed-positioning">fixed positioning</termref>.</p></item>

<item><p>New box types (along with block and inline):<termref def="compact">compact</termref> and <termref def="run-in">run-in</termref>.</p></item>

<item><p>The ability to control content <termref def="overflow">overflow</termref>, <termref def="clipping">clipping</termref>, and <termref def="visibility">visibility</termref> in the visual formatting
model.</p></item>

<item><p>The ability to specify minimum and maximum <titleref ref="min-max-widths">widths</titleref> and <titleref ref="min-max-heights">heights</titleref> in the visual
formatting model.</p></item>

<item><p>An extended <titleref ref="selector">selector</titleref> mechanism,
including child selectors, adjacent selectors, and attribute selectors.</p></item>

<item><p><titleref ref="generate">Generated content</titleref>,
<titleref ref="counters">counters and automatic numbering</titleref>, and
<titleref ref="markers">markers</titleref>.</p></item>

<item><p>Text shadows, through the new <property>text-shadow</property> property.</p></item>

<item><p>Several new <titleref ref="pseudo-classes">pseudo-classes</titleref>, <selector>:first-child</selector>, <selector>:hover</selector>,
<selector>:focus</selector>, <selector>:lang</selector>.</p></item>

<item><p>System <titleref ref="system-colors">colors</titleref> and
<titleref ref="system-fonts">fonts</titleref>.</p></item>

<item><p><titleref ref="cursor-props">Cursors</titleref>.</p></item>

<item><p><titleref ref="dynamic-outlines">Dynamic outlines</titleref>.</p></item>

</ulist>

    </div2>
    <div2 id="changes2"><head>Updated descriptions</head>

<p>The CSS1 specification was short and concise. This specification is
much more voluminous and more readable. Much of the additional content
describes new functionality, but the description of CSS1 features has
also been extended. Except in a few cases described below, the
rewritten descriptions do not indicate a change in syntax nor
semantics.</p>

    </div2>
    <div2 id="changes-from-css1">
      <head>Semantic changes from CSS1</head>

<p>While all CSS1 style sheets are valid CSS2 style sheets, there are
a few cases where the CSS1 style sheet will have a different meaning
when interpreted as a CSS2 style sheet. Most changes are due to
implementation experience feeding back into the specification, but
there are also some error corrections.</p>

<ulist>
<item><p>The meaning of "!important" has been changed. In CSS1,
"!important" in an author's style sheet took precedence over
one in a user style sheet. This has been reversed in CSS2.</p></item>


<item><p>In CSS2 <titleref ref="color-units">color values</titleref> are clipped
with regard to the device gamut, not with regard to the sRGB gamut as
in CSS1.</p></item>

<item><p>CSS1 simply said that 'margin-right' was ignored if the both
'margin-left' and 'width' were set. In CSS2 the choice between
relaxing 'margin-right' or 'margin-left' depends on the writing direction.</p></item>

<item><p>In CSS1, several properties (e.g., 'padding') had values referring
to the width of the parent element. This was an error; the value
should always refer to the width of a block-level element and this
specification reflects this by introducing the term "containing block".</p></item>

<item><p>The initial value of 'display' is 'inline' in CSS2, not 'block' as
in CSS1.</p></item>

<item><p>In CSS1, the 'clear' property applied to all elements. This was an
error, and the property only applies to block-level elements in CSS2.</p></item>

<item><p>
<indexterm><primary>pseudo-classes</primary> <secondary><selector>:link</selector></secondary></indexterm>
<indexterm><primary><selector>:link</selector></primary></indexterm>
<indexterm><primary>link (pseudo-class)</primary></indexterm>
<indexterm><primary>pseudo-classes</primary> <secondary><selector>:visited</selector></secondary></indexterm>
<indexterm><primary><selector>:visited</selector></primary></indexterm>
<indexterm><primary>visited (pseudo-class)</primary></indexterm>

<indexterm><primary>pseudo-classes</primary> <secondary><selector>:active</selector></secondary></indexterm>
<indexterm><primary><selector>:active</selector></primary></indexterm>
<indexterm><primary>active (pseudo-class)</primary></indexterm>
In CSS1, <selector>:link</selector>, <selector>:visited</selector> and <selector>:active</selector> were mutually exclusive; in CSS2,<selector>:active</selector> can occur
together with <selector>:link</selector> or
<selector>:visited</selector>.</p></item>

<item><p>The suggested scaling factor between adjacent <property>font-size</property> indexes in the table of font
sizes has been reduced from 1.5 to 1.2.</p></item>

<item><p>The computed value, not the actual value, of<property>font-size</property> is inherited.</p></item>

<item><p>The CSS1 description of 'inside' (for <property>list-style-position</property>)
allowed the interpretation that the left margin of the text was
affected, rather than the position of the bullet. In CSS2 that
interpretation is ruled out.</p></item>

<item><p>Please also consult the <emph>normative</emph> section on the <titleref ref="tokenizer-diffs">differences between the CSS1 and
CSS2 tokenizer</titleref>.</p></item>
</ulist>
    </div2>
  </inform-div1>


