<?xml version="1.0" encoding="UTF-8"?>
<!-- $Date: 2001-06-01 07:15:37 -0400 (Fri, 01 Jun 2001) $ $Revision: 225913 $ -->
<!--
 *************************************************************************
 * BEGINNING OF LEVEL TWO CSS                                           *
 *************************************************************************
-->
<div1 id="CSS">
  <head>Document Object Model CSS</head>
  <orglist role="editors">
    <member>
      <name>Chris Wilson</name>
      <affiliation>Microsoft Corp.</affiliation>
    </member>
    <member>
      <name>Philippe Le H&eacute;garet</name>
      <affiliation>W3C</affiliation>
    </member>
    <member>
      <name>Vidur Apparao</name>
      <affiliation>Netscape Communications Corp.</affiliation>
    </member>
  </orglist>
  <?GENERATE-MINI-TOC?>
  <!--
  ******************************************************
  | INTRODUCTION                                       |
  ******************************************************
  -->
  <div2 id="CSS-overview">
    <head>Overview of the DOM Level 2 CSS Interfaces</head>
    <p>
      The DOM Level 2 Cascading Style Sheets (<loc href="&CSS;">CSS</loc>)
      interfaces are designed with the goal of exposing CSS constructs to
      object model consumers. Cascading Style Sheets is a declarative syntax
      for defining presentation rules, properties and ancillary constructs used
      to format and render Web documents. This document specifies a mechanism
      to programmatically access and modify the rich style and presentation
      control provided by CSS (specifically CSS level 2 <bibref
      ref='CSS2'/>).  This augments CSS by providing a mechanism to dynamically
      control the inclusion and exclusion of individual style sheets, as well
      as manipulate CSS rules and properties.
    </p>
    <p>
      The CSS interfaces are organized in a logical, rather than 
      physical structure.  A collection of all style sheets 
      referenced by or embedded in the document is accessible on
      the document interface.  Each item in this collection exposes
      the properties common to all style sheets referenced or embedded
      in HTML and XML documents; this interface is described in the
      <specref ref="StyleSheets"/>.  User style sheets are
      not accessible through this collection, in part due to potential
      privacy concerns (and certainly read-write issues).
    </p>
    <p>
      For each CSS style sheet, an additional interface is exposed - the
      <code>CSSStyleSheet</code> interface.  This interface allows access to
      the collection of rules within a CSS style sheet and methods to modify
      that collection.  Interfaces are provided for each specific type of rule
      in CSS2 (e.g. style declarations, <code>@import</code> rules, or
      <code>@font-face</code> rules), as well as a shared generic
      <code>CSSRule</code> interface.
    </p>
    <p>
      The most common type of rule is a style declaration.  The
      <code>CSSStyleRule</code> interface that represents this type of rule
      provides string access to the CSS selector of the rule, and access to the
      property declarations through the <code>CSSStyleDeclaration</code>
      interface.
    </p>
    <p>
      Finally, an optional <code>CSS2Properties</code> interface is described; 
      this interface (if implemented) provides shortcuts to the string
      values of all the properties in CSS level 2.
    </p>
    <p>
      All CSS objects in the DOM are "live", that is, a change in the style sheet
      is reflected in the computed and actual style.
    </p>
    
  </div2>
  <div2 id="CSS-fundamental">
    <head>CSS Fundamental Interfaces</head>

    <p>
      The interfaces within this section are considered fundamental CSS
      interfaces, and must be supported by all conforming implementations of
      the CSS module. These interfaces represent CSS style sheets specifically.
    </p>
    <p>
      A DOM application may use the <code>hasFeature(feature, version)</code>
      method of the <code>DOMImplementation</code> interface with parameter
      values "CSS" and "2.0" (respectively) to determine whether or not this
      module is supported by the implementation. In order to fully support this
      module, an implementation must also support the "Core" feature defined
      defined in the DOM Level 2 Core specification <bibref ref="DOMCore"/> and
      the "Views" feature defined in the DOM Level 2 Views specification
      <bibref ref="DOMViews"/>. Please refer to additional information about
      <xspecref
      href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
      in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
    </p>

    <definitions>
      &css-cssstylesheet;
      &css-cssrulelist;
      &css-cssrule;
      &css-cssstylerule;
      &css-cssmediarule;
      &css-cssfontfacerule;
      &css-csspagerule;
      &css-cssimportrule;
      &css-csscharsetrule;
      &css-cssunknownrule;
      &css-cssstyledeclaration;
      &css-cssvalue;
      &css-cssprimitivevalue;
      &css-cssvaluelist;
      &css-rgbcolor;
      &css-rect;
      &css-counter;
    </definitions>

    <div3 id="CSS-OverrideAndComputed">
      <head>Override and computed style sheet</head>
      <definitions>
	&css-viewcss;
	&css-documentcss;
      </definitions>
    </div3>    

    <div3 id="CSS-StyleSheetCreation">
      <head>Style sheet creation</head>
      <definitions>
	&css-domimplementationcss;
      </definitions>
    </div3>    

    <div3 id="CSS-htmlelementcss">
      <head>Element with CSS inline style</head>
      <definitions>
	&css-elementcssinlinestyle;
      </definitions>
    </div3>    

  </div2>

  <div2 id="CSS-extended">
    <head>CSS2 Extended Interface</head>
    <p>
      The interface found within this section are not mandatory. A DOM
      application may use the <code>hasFeature(feature, version)</code> method
      of the <code>DOMImplementation</code> interface with parameter values
      "CSS2" and "2.0" (respectively) to determine whether or not this module
      is supported by the implementation. In order to fully support this
      module, an implementation must also support the "CSS" feature defined
      defined in <specref ref="CSS-fundamental"/>. Please refer to additional
      information about <xspecref
      href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
      in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
    </p>

    <definitions>
      &css-css2properties;
    </definitions>
  </div2>
</div1>
      <!--
      *************************************************************************
      * END OF LEVEL TWO CSS                                                 *
      *************************************************************************
      -->
