WD-DOM-Level-2-19990719


4. Document Object Model CSS

Editors
Vidur Apparao, Netscape Communications Corp.
Philippe Le Hégaret, W3C
Chris Wilson, Microsoft

Table of contents


4.1. Overview of the DOM Level 2 CSS Interfaces

The DOM Level 2 Cascading Style Sheets (CSS) 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 two). 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.

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 Style Sheets chapter of the DOM Level 2. User style sheets are not accessible through this collection, in part due to potential privacy concerns (and certainly read-write issues).

For each CSS style sheet, an additional interface is exposed - the CSSStyleSheet 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, @import rules, or @font-face rules), as well as a shared generic CSSRule interface.

The most common type of rule is a style declaration. The CSSStyleRule 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 CSSStyleDeclaration interface.

Finally, an optional CSS2Properties interface is described; this interface (if implemented) provides shortcuts to the string values of all the properties in CSS level 2.

4.2. CSS Fundamental Interfaces

The interfaces within this section are considered fundamental, and must be implemented by all conforming applications of this specifcation. These interfaces represent CSS style sheets specifically.

A DOM consumer can use the hasFeature of the DOMImplementation interface to determine whether the CSS module has been implemented by a DOM implementation. The feature string for the fundamental interfaces listed in this section is "CSS".

Interface CSSStyleSheet

The CSSStyleSheet interface is a concrete interface used to represent a CSS style sheet i.e. a style sheet whose content type is "text/css".

IDL Definition

interface CSSStyleSheet : StyleSheet {
  readonly attribute CSSRule          ownerRule;
  readonly attribute CSSRuleList      cssRules;
  unsigned long      insertRule(in DOMString rule, 
                                in unsigned long index)
                                        raises(DOMException);
  void               deleteRule(in unsigned long index)
                                        raises(DOMException);
};

Attributes
ownerRule
If this style sheet comes from an @import rule, the ownerRule attribute will contain the CSSImportRule. In that case, the ownerNode attribute in the StyleSheet interface will be null. If the style sheet comes from an element or a processing instruction, the ownerRule attribute will be null and the ownerNode attribute will contain the Node.
cssRules
The list of all CSS rules contained within the style sheet. This includes both rule sets and at-rules.
Methods
insertRule
Used to insert a new rule into the style sheet. The new rule now becomes part of the cascade.
Parameters
rule

The parsable text representing the rule. For rule sets this contains both the selector and the style declaration. For at-rules, this specifies both the at-identifier and the rule content.

index

The index within the style sheet's rule list of the rule before which to insert the specified rule. If the specified index is equal to the length of the style sheet's rule collection, the rule will be added to the end of the style sheet.

Return Value
The index within the style sheet's rule collection of the newly inserted rule.
Exceptions
DOMException

HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the specified index e.g. if an @import rule is inserted after a standard rule set or other at-rule.

INDEX_SIZE_ERR: Raised if the specified index is not a valid insertion point.

SYNTAX_ERR: Raised if the specified rule has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is readonly.


deleteRule
Used to delete a rule from the style sheet.
Parameters
index

The index within the style sheet's rule list of the rule to remove.

Exceptions
DOMException

INDEX_SIZE_ERR: Raised if the specified index does not correspond to a rule in the style sheet's rule list.

NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is readonly.


This method returns nothing.
Interface CSSRuleList

The CSSRuleList interface provides the abstraction of an ordered collection of CSS rules.

IDL Definition

interface CSSRuleList {
  readonly attribute unsigned long    length;
  CSSRule            item(in unsigned long index);
};

Attributes
length
The number of CSSRules in the list. The range of valid child rule indices is 0 to length-1 inclusive.
Methods
item
Used to retrieve a CSS rule by ordinal index. The order in this collection represents the order of the rules in the CSS style sheet.
Parameters
index

Index into the collection

Return Value
The style rule at the index position in the CSSRuleList, or null if that is not a valid index.

This method raises no exceptions.
Interface CSSRule

The CSSRule interface is the abstract base interface for any type of CSS statement. This includes both rule sets and at-rules. An implementation is expected to preserve all rules specified in a CSS style sheet, even if it is not recognized. Unrecognized rules are represented using the CSSUnknownRule interface.

IDL Definition

interface CSSRule {
  // RuleType
  const unsigned short      UNKNOWN_RULE                   = 0;
  const unsigned short      STYLE_RULE                     = 1;
  const unsigned short      CHARSET_RULE                   = 2;
  const unsigned short      IMPORT_RULE                    = 3;
  const unsigned short      MEDIA_RULE                     = 4;
  const unsigned short      FONT_FACE_RULE                 = 5;
  const unsigned short      PAGE_RULE                      = 6;

  readonly attribute unsigned short   type;
           attribute DOMString        cssText;
                                        // raises(DOMException) on setting

  readonly attribute CSSStyleSheet    parentStyleSheet;
  readonly attribute CSSRule          parentRule;
};

Definition group RuleType

An integer indicating which type of rule this is.

Defined Constants
UNKNOWN_RULE

The rule is a CSSUnknownRule.

STYLE_RULE

The rule is a CSSStyleRule.

CHARSET_RULE

The rule is a CSSCharsetRule.

IMPORT_RULE

The rule is a CSSImportRule.

MEDIA_RULE

The rule is a CSSMediaRule.

FONT_FACE_RULE

The rule is a CSSFontFaceRule.

PAGE_RULE

The rule is a CSSPageRule.

Attributes
type
The type of the rule, as defined above. The expectation is that binding-specific casting methods can be used to cast down from an instance of the CSSRule interface to the specific derived interface implied by the type.
cssText
The parsable textual representation of the rule. This reflects the current state of the rule and not its initial value.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at this point in the style sheet.

NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is readonly.

parentStyleSheet
The style sheet that contains this rule.
parentRule
If this rule is contained inside another rule (e.g. a style rule inside an @media block), this is the containing rule. If this rule is not nested inside any other rules, this returns null.
Interface CSSStyleRule

The CSSStyleRule interface represents a single rule set in a CSS style sheet.

IDL Definition

interface CSSStyleRule : CSSRule {
           attribute DOMString        selectorText;
                                        // raises(DOMException) on setting

  readonly attribute CSSStyleDeclaration  style;
};

Attributes
selectorText
The textual representation of the selector for the rule set. The implementation may have stripped out insignificant whitespace while parsing the selector.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is readonly.

style
The declaration-block of this rule set.
Interface CSSMediaRule

The CSSMediaRule interface represents a @media rule in a CSS style sheet. A @media rule can be used to delimit style rules for specific media types.

IDL Definition

interface CSSMediaRule : CSSRule {
  readonly attribute MediaList        media;
  readonly attribute CSSRuleList      cssRules;
  unsigned long      insertRule(in DOMString rule, 
                                in unsigned long index)
                                        raises(DOMException);
  void               deleteRule(in unsigned long index)
                                        raises(DOMException);
};

Attributes
media
A list of media types for this rule.
cssRules
A list of all CSS rules contained within the media block.
Methods
insertRule
Used to insert a new rule into the media block.
Parameters
rule

The parsable text representing the rule. For rule sets this contains both the selector and the style declaration. For at-rules, this specifies both the at-identifier and the rule content.

index

The index within the media block's rule collection of the rule before which to insert the specified rule. If the specified index is equal to the length of the media blocks's rule collection, the rule will be added to the end of the media block.

Return Value
The index within the media block's rule collection of the newly inserted rule.
Exceptions
DOMException

HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the specified index. e.g. if an @import rule is inserted after a standard rule set or other at-rule.

INDEX_SIZE_ERR: Raised if the specified index is not a valid insertion point.

SYNTAX_ERR: Raised if the specified rule has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is readonly.


deleteRule
Used to delete a rule from the media block.
Parameters
index

The index within the media block's rule collection of the rule to remove.

Exceptions
DOMException

INDEX_SIZE_ERR: Raised if the specified index does not correspond to a rule in the media rule list.

NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is readonly.


This method returns nothing.
Interface CSSFontFaceRule

The CSSFontFaceRule interface represents a @font-face rule in a CSS style sheet. The @font-face rule is used to hold a set of font descriptions.

IDL Definition

interface CSSFontFaceRule : CSSRule {
  readonly attribute CSSStyleDeclaration  style;
};

Attributes
style
The declaration-block of this rule.
Interface CSSPageRule

The CSSPageRule interface represents a @page rule within a CSS style sheet. The @page rule is used to specify the dimensions, orientation, margins, etc. of a page box for paged media.

IDL Definition

interface CSSPageRule : CSSRule {
           attribute DOMString        selectorText;
                                        // raises(DOMException) on setting

  readonly attribute CSSStyleDeclaration  style;
};

Attributes
selectorText
The parsable textual representation of the page selector for the rule.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is readonly.

style
The declaration-block of this rule.
Interface CSSImportRule

The CSSImportRule interface represents a @import rule within a CSS style sheet. The @import rule is used to import style rules from other style sheets.

IDL Definition

interface CSSImportRule : CSSRule {
  readonly attribute DOMString        href;
  readonly attribute MediaList        media;
  readonly attribute CSSStyleSheet    styleSheet;
};

Attributes
href
The location of the style sheet to be imported. The attribute will not contain the "url(...)" specifier around the URI.
media
A list of media types for which this style sheet may be used.
styleSheet
The style sheet referred to by this rule, if it has been loaded. The value of this attribute is null if the style sheet has not yet been loaded or if it will not be loaded (e.g. if the style sheet is for a media type not supported by the user agent).
Interface CSSCharsetRule

The CSSCharsetRule interface a @charset rule in a CSS style sheet. A @charset rule can be used to define the encoding of the style sheet.

IDL Definition

interface CSSCharsetRule : CSSRule {
           attribute DOMString        encoding;
                                        // raises(DOMException) on setting

};

Attributes
encoding
The encoding information used in this @charset rule.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified encoding value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is readonly.

Interface CSSUnknownRule

The CSSUnkownRule interface represents an at-rule not supported by this user agent.

IDL Definition

interface CSSUnknownRule : CSSRule {
};

Interface CSSStyleDeclaration

The CSSStyleDeclaration interface represents a single CSS declaration block. This interface may be used to determine the style properties currently set in a block or to set style properties explicitly within the block.

While an implementation may not recognize all CSS properties within a CSS declaration block, it is expected to provide access to all specified properties through the CSSStyleDeclaration interface. Furthermore, implementations that support a specific level of CSS should correctly handle CSS shorthand properties for that level. For a further discussion of shorthand properties, see the CSS2Properties interface.

IDL Definition

interface CSSStyleDeclaration {
           attribute DOMString        cssText;
                                        // raises(DOMException) on setting

  DOMString          getPropertyValue(in DOMString propertyName);
  CSSValue           getPropertyCSSValue(in DOMString propertyName);
  DOMString          removeProperty(in DOMString propertyName)
                                        raises(DOMException);
  DOMString          getPropertyPriority(in DOMString propertyName);
  void               setProperty(in DOMString propertyName, 
                                 in DOMString value, 
                                 in DOMString priority)
                                        raises(DOMException);
  readonly attribute unsigned long    length;
  DOMString          item(in unsigned long index);
  readonly attribute CSSRule          parentRule;
};

Attributes
cssText
The parsable textual representation of the declaration block (including the surrounding curly braces). Setting this attribute will result in the parsing of the new value and resetting of the properties in the declaration block.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

length
The number of properties that have been explicitly set in this declaration block.
parentRule
The CSS rule that contains this declaration block.
Methods
getPropertyValue
Used to retrieve the value of a CSS property if it has been explicitly set within this declaration block.
Parameters
propertyName

The name of the CSS property. See the CSS property index.

Return Value
Returns the value of the property if it has been explicitly set for this declaration block. Returns the empty string if the property has not been set.

This method raises no exceptions.
getPropertyCSSValue
Used to retrieve the object representation of the value of a CSS property if it has been explicitly set within this declaration block. This method returns null if the property is a shorthand property. Shorthand property values can only be accessed and modified as strings, using the getPropertyValue and setProperty methods.
Parameters
propertyName

The name of the CSS property. See the CSS property index.

Return Value
Returns the value of the property if it has been explicitly set for this declaration block. Returns the null if the property has not been set.

This method raises no exceptions.
removeProperty
Used to remove a CSS property if it has been explicitly set within this declaration block.
Parameters
propertyName

The name of the CSS property. See the CSS property index.

Return Value
Returns the value of the property if it has been explicitly set for this declaration block. Returns the empty string if the property has not been set or the property name does not correspond to a valid CSS2 property.
Exceptions
DOMException

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.


getPropertyPriority
Used to retrieve the priority of a CSS property (e.g. the "important" qualifier) if the property has been explicitly set in this declaration block.
Parameters
propertyName

The name of the CSS property. See the CSS property index.

Return Value
A string representing the priority (e.g. "important") if one exists. The empty string if none exists.

This method raises no exceptions.
setProperty
Used to set a property value and priority within this declaration block.
Parameters
propertyName

The name of the CSS property. See the CSS property index.

value

The new value of the property.

priority

The new priority of the property (e.g. "important").

Exceptions
DOMException

SYNTAX_ERR: Raised if the specified value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.


This method returns nothing.
item
Used to retrieve the properties that have been explicitly set in this declaration block. The order of the properties retrieved using this method does not have to be the order in which they were set. This method can be used to iterate over all properties in this declaration block.
Parameters
index

Index of the property name to retrieve.

Return Value
The name of the property at this ordinal position. The empty string if no property exists at this position.

This method raises no exceptions.
Interface CSSValue

The CSSValue interface represents a simple or a complexe value.

IDL Definition

interface CSSValue {
  // UnitTypes
  const unsigned short      CSS_PRIMITIVE_VALUE            = 0;
  const unsigned short      CSS_VALUE_LIST                 = 1;
  const unsigned short      CSS_CUSTOM                     = 2;

           attribute DOMString        cssText;
                                        // raises(DOMException) on setting

  readonly attribute unsigned short   valueType;
};

Definition group UnitTypes

An integer indicating which type of unit applies to the value. Note: All CSS2 constants are not supposed to be required by the implementation since all CSS2 interfaces are optionals.

Defined Constants
CSS_PRIMITIVE_VALUE

The value is a CSSPrimitiveValue.

CSS_VALUE_LIST

The value is a list CSSValue.

CSS_CUSTOM

The value is a custom value.

Attributes
cssText
A string representation of the current value.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

valueType
A code defining the type of the value as defined above.
Interface CSSPrimitiveValue

The CSSPrimitiveValue interface represents a single CSS value. This interface may be used to determine the value of a specific style property currently set in a block or to set a specific style properties explicitly within the block. An instance of this interface can be obtained from the getPropertyCSSValue method of the CSSStyleDeclaration interface.

IDL Definition

interface CSSPrimitiveValue : CSSValue {
  // UnitTypes
  const unsigned short      CSS_UNKNOWN                    = 0;
  const unsigned short      CSS_INHERIT                    = 1;
  const unsigned short      CSS_NUMBER                     = 2;
  const unsigned short      CSS_PERCENTAGE                 = 3;
  const unsigned short      CSS_EMS                        = 4;
  const unsigned short      CSS_EXS                        = 5;
  const unsigned short      CSS_PX                         = 6;
  const unsigned short      CSS_CM                         = 7;
  const unsigned short      CSS_MM                         = 8;
  const unsigned short      CSS_IN                         = 9;
  const unsigned short      CSS_PT                         = 10;
  const unsigned short      CSS_PC                         = 11;
  const unsigned short      CSS_DEG                        = 12;
  const unsigned short      CSS_RAD                        = 13;
  const unsigned short      CSS_GRAD                       = 14;
  const unsigned short      CSS_MS                         = 15;
  const unsigned short      CSS_S                          = 16;
  const unsigned short      CSS_HZ                         = 17;
  const unsigned short      CSS_KHZ                        = 18;
  const unsigned short      CSS_DIMENSION                  = 19;
  const unsigned short      CSS_STRING                     = 20;
  const unsigned short      CSS_URI                        = 21;
  const unsigned short      CSS_IDENT                      = 22;
  const unsigned short      CSS_ATTR                       = 23;
  const unsigned short      CSS_COUNTER                    = 24;
  const unsigned short      CSS_RECT                       = 26;
  const unsigned short      CSS_RGBCOLOR                   = 27;

  readonly attribute unsigned short   primitiveType;
  void               setFloatValue(in unsigned short unitType, 
                                   in float floatValue)
                                        raises(DOMException);
  float              getFloatValue(in unsigned short unitType)
                                        raises(DOMException);
  void               setStringValue(in unsigned short stringType, 
                                    in DOMString stringValue)
                                        raises(DOMException);
  DOMString          getStringValue()
                                        raises(DOMException);
  Counter            getCounterValue()
                                        raises(DOMException);
  Rect               getRectValue()
                                        raises(DOMException);
  RGBColor           getRGBColorValue()
                                        raises(DOMException);
};

Definition group UnitTypes

An integer indicating which type of unit applies to the value.

Defined Constants
CSS_UNKNOWN

The value is not a recognized CSS2 value. The value can only be obtained by using the cssText attribute.

CSS_INHERIT

The value is the inherit identifier. The string representation of this value can be obtained by using the getStringValue method.

CSS_NUMBER

The value is a simple number. The value can be obtained by using the getFloatValue method.

CSS_PERCENTAGE

The value is a percentage. The value can be obtained by using the getFloatValue method.

CSS_EMS

The value is length (ems). The value can be obtained by using the getFloatValue method.

CSS_EXS

The value is length (exs). The value can be obtained by using the getFloatValue method.

CSS_PX

The value is length (px). The value can be obtained by using the getFloatValue method.

CSS_CM

The value is length (cm). The value can be obtained by using the getFloatValue method.

CSS_MM

The value is length (mm). The value can be obtained by using the getFloatValue method.

CSS_IN

The value is length (in). The value can be obtained by using the getFloatValue method.

CSS_PT

The value is length (pt). The value can be obtained by using the getFloatValue method.

CSS_PC

The value is a length (pc). The value can be obtained by using the getFloatValue method.

CSS_DEG

The value is an angle (deg). The value can be obtained by using the getFloatValue method.

CSS_RAD

The value is an angle (rad). The value can be obtained by using the getFloatValue method.

CSS_GRAD

The value is an angle (grad). The value can be obtained by using the getFloatValue method.

CSS_MS

The value is a time (ms). The value can be obtained by using the getFloatValue method.

CSS_S

The value is a time (s). The value can be obtained by using the getFloatValue method.

CSS_HZ

The value is a frequency (Hz). The value can be obtained by using the getFloatValue method.

CSS_KHZ

The value is a frequency (kHz). The value can be obtained by using the getFloatValue method.

CSS_DIMENSION

The value is a number with an unknown dimension. The value can be obtained by using the getFloatValue method.

CSS_STRING

The value is a STRING. The value can be obtained by using the getStringValue method.

CSS_URI

The value is a URI. The value can be obtained by using the getStringValue method.

CSS_IDENT

The value is an identifier. The value can be obtained by using the getStringValue method.

CSS_ATTR

The value is a attribute function. The value can be obtained by using the getStringValue method.

CSS_COUNTER

The value is a counter or counters function. The value can be obtained by using the getCounterValue method.

CSS_RECT

The value is a rect function. The value can be obtained by using the getRectValue method.

CSS_RGBCOLOR

The value is a RGB color. The value can be obtained by using the getRGBColorValue method.

Attributes
primitiveType
The type of the value as defined by the constants specified above.
Methods
setFloatValue
A method to set the float value with a specified unit. If the property attached with this value can not accept the specified unit or the float value, the value will be unchanged and a DOMException will be raised.
Parameters
unitType

A unit code as defined above. The unit code can only be a float unit type (e.g. NUMBER, PERCENTAGE, CSS_EMS, CSS_EXS, CSS_PX, CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC, CSS_DEG, CSS_RAD, CSS_GRAD, CSS_MS, CSS_S, CSS_HZ, CSS_KHZ, CSS_DIMENSION).

floatValue

The new float value.

Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the attached property doesn't support the float value or the unit type.

NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.


This method returns nothing.
getFloatValue
This method is used to get a float value in a specified unit. If this CSS value doesn't contain a float value or can't be converted into the specified unit, a DOMException is raised.
Parameters
unitType

A unit code to get the float value. The unit code can only be a float unit type (e.g. CSS_NUMBER, CSS_PERCENTAGE, CSS_EMS, CSS_EXS, CSS_PX, CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC, CSS_DEG, CSS_RAD, CSS_GRAD, CSS_MS, CSS_S, CSS_HZ, CSS_KHZ, CSS_DIMENSION).

Return Value
The float value in the specified unit.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a float value or if the float value can't be converted into the specified unit.


setStringValue
A method to set the string value with a specified unit. If the property attached to this value can't accept the specified unit or the string value, the value will be unchanged and a DOMException will be raised.
Parameters
stringType

A string code as defined above. The string code can only be a string unit type (e.g. CSS_URI, CSS_IDENT, CSS_INHERIT and CSS_ATTR).

stringValue

The new string value. If the stringType is equal to CSS_INHERIT, the stringValue should be inherit.

Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a string value or if the string value can't be converted into the specified unit.

NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.


This method returns nothing.
getStringValue
This method is used to get the string value in a specified unit. If the CSS value doesn't contain a string value, a DOMException is raised.
Return Value
The string value in the current unit. The current valueType can only be a string unit type (e.g. CSS_URI, CSS_IDENT and CSS_ATTR).
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a string value.


This method has no parameters.
getCounterValue
This method is used to get the Counter value. If this CSS value doesn't contain a counter value, a DOMException is raised. Modification to the corresponding style property can be achieved using the Counter interface.
Return Value
The Counter value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a Counter value.


This method has no parameters.
getRectValue
This method is used to get the Rect value. If this CSS value doesn't contain a rect value, a DOMException is raised. Modification to the corresponding style property can be achieved using the Rect interface.
Return Value
The Rect value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a Rect value.


This method has no parameters.
getRGBColorValue
This method is used to get the RGB color. If this CSS value doesn't contain a RGB color value, a DOMException is raised. Modification to the corresponding style property can be achieved using the RGBColor interface.
Return Value
the RGB color value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the attached property can't return a RGB color value.


This method has no parameters.
Interface CSSValueList

The CSSValueList interface provides the absraction of an ordered collection of CSS values.

IDL Definition

interface CSSValueList : CSSValue {
  readonly attribute unsigned long    length;
  CSSValue           item(in unsigned long index);
};

Attributes
length
The number of CSSValues in the list. The range of valid values indices is 0 to length-1 inclusive.
Methods
item
Used to retrieve a CSS rule by ordinal index. The order in this collection represents the order of the values in the CSS style property.
Parameters
index

Index into the collection.

Return Value
The style rule at the index position in the CSSValueList, or null if that is not valid index.

This method raises no exceptions.
Interface RGBColor

The RGBColor interface is used to represent any RGB color value. This interface reflects the values in the underlying style property. Hence, modifications made through this interface modify the style property.

IDL Definition

interface RGBColor {
           attribute CSSValue         red;
           attribute CSSValue         green;
           attribute CSSValue         blue;
};

Attributes
red
This attribute is used for the red value of the RGB color.
green
This attribute is used for the green value of the RGB color.
blue
This attribute is used for the blue value of the RGB color.
Interface Rect

The Rect interface is used to represent any rect value. This interface reflects the values in the underlying style property. Hence, modifications made through this interface modify the style property.

IDL Definition

interface Rect {
           attribute CSSValue         top;
           attribute CSSValue         right;
           attribute CSSValue         bottom;
           attribute CSSValue         left;
};

Attributes
top
This attribute is used for the top of the rect.
right
This attribute is used for the right of the rect.
bottom
This attribute is used for the bottom of the rect.
left
This attribute is used for the left of the rect.
Interface Counter

The Counter interface is used to represent any counter or counters function value. This interface reflects the values in the underlying style property. Hence, modifications made through this interface modify the style property.

IDL Definition

interface Counter {
           attribute DOMString        identifier;
           attribute DOMString        listStyle;
           attribute DOMString        separator;
};

Attributes
identifier
This attribute is used for the identifier of the counter.
listStyle
This attribute is used for the style of the list.
separator
This attribute is used for the separator of nested counters.

4.3. CSS Extended Interfaces

The interfaces found within this section are not mandatory. A DOM consumer can use the hasFeature of the DOMImplementation interface to determine whether the CSS2 extended interfaces have been implemented by a DOM implementation. The feature string for all the extended interfaces listed in this section except the CSS2Properties interface is "CSS2".

The following table specifies the type of CSSValue used to represent each property that can be specified in a CSSStyleDeclaration found in a CSSStyleRule for a CSS Level 2 style sheet. The expectation is that the CSSValue returned from the getPropertyCSSValue method on the CSSStyleDeclaration interface can be cast down, using binding-specific casting methods, to the specific derived interface.

For properties that are represented by a custom interface (the valueType of the CSSValue is CSS_CUSTOM), the name of the derived interface is specified in the table. For properties that consist of lists of values (the valueType of the CSSValue is CSS_VALUE_LIST), the derived interface is CSSValueList. For all other properties (the valueType of the CSSValue is CSS_PRIMITIVE_VALUE), the derived interface is CSSPrimitiveValue.
Property NameRepresentation
azimuthCSS2Azimuth
backgroundnull
background-attachmentident
background-colorrgbcolor, ident
background-imageuri, ident
background-positionCSS2BackgroundPosition
background-repeatident
bordernull
border-collapseident
border-colornull
border-spacingCSS2BorderSpacing
border-stylenull
border-top, border-right, border-bottom, border-leftnull
border-top-color, border-right-color, border-bottom-color, border-left-colorrgbcolor, ident
border-top-style, border-right-style, border-bottom-style, border-left-styleident
border-top-width, border-right-width, border-bottom-width, border-left-widthlength, ident
border-widthnull
bottomlength, percentage, ident
caption-sideident
clearident
cliprect, ident
colorrgbcolor, ident
contentlist of string, uri, counter, attr, ident
counter-incrementlist of CSS2CounterIncrement
counter-resetlist of CSS2CounterReset
cuenull
cue-after, cue-beforeuri, ident
cursorCSS2Cursor
directionident
displayident
elevationangle, ident
empty-cellsident
floatident
fontnull
font-familylist of strings and idents
font-sizeident, length, percentage
font-size-adjustnumber, ident
font-stretchident
font-styleident
font-variantident
font-weightident
heightlength, percentage, ident
leftlength, percentage, ident
letter-spacingident, length
line-heightident, length, percentage, number
list-stylenull
list-style-imageuri, ident
list-style-positionident
list-style-typeident
marginnull
margin-top, margin-right, margin-bottom, margin-leftlength, percentage, ident
marker-offsetlength, ident
max-heightlength, percentage, ident
max-widthlength, percentage, ident
min-heightlength, percentage, ident
min-widthlength, percentage, ident
orphansnumber
outlinenull
outline-colorrgbcolor, ident
outline-styleident
outline-widthlength, ident
overflowident
paddingnull
padding-top, padding-right, padding-bottom, padding-leftlength, percentage
pageident
page-break-afterident
page-break-beforeident
page-break-insideident
pausenull
pause-after, pause-beforetime, percentage
pitchfrequency, identifier
pitch-rangenumber
play-duringCSS2PlayDuring
positionident
quoteslist of string or ident
richnessnumber
rightlength, percentage, ident
speakident
speak-headerident
speak-numeralident
speak-punctuationident
speech-ratenumber, ident
stressnumber
table-layoutident
text-alignident, string
text-decorationlist of ident
text-indentlength, percentage
text-shadowlist of CSS2TextShadow
text-transformident
toplength, percentage, ident
unicode-bidiident
vertical-alignident, percentage, length
visibilityident
voice-familylist of strings and idents
volumenumber, percentage, ident
white-spaceident
widowsnumber
widthlength, percentage, ident
word-spacinglength, ident
z-indexident, number

Interface CSS2Azimuth

The CSS2Azimuth interface represents the azimuth CSS Level 2 property.

IDL Definition

interface CSS2Azimuth : CSSValue {
  readonly attribute unsigned short   azimuthType;
  readonly attribute DOMString        identifier;
  readonly attribute boolean          behind;
  void               setAngleValue(in unsigned short unitType, 
                                   in float floatValue)
                                        raises(DOMException);
  float              getAngleValue(in unsigned short unitType)
                                        raises(DOMException);
  void               setIdentifier(in DOMString identifier, 
                                   in boolean behind)
                                        raises(DOMException);
};

Attributes
azimuthType
A code defining the type of the value as defined in CSSValue. It would be one of CSS_DEG, CSS_RAD, CSS_GRAD or CSS_IDENT.
identifier
If azimuthType is CSS_IDENT, identifier contains one of left-side, far-left, left, center-left, center, center-right, right, far-right, right-side, leftwards, rightwards. The empty string if none is set.
behind
behind indicates whether the behind identifier has been set.
Methods
setAngleValue
A method to set the angle value with a specified unit. This method will unset any previously set identifiers values.
Parameters
unitType

The unitType could only be one of CSS_DEG, CSS_RAD or CSS_GRAD).

floatValue

The new float value of the angle.

Exceptions
DOMException

INVALID_ACCESS_ERR: Raised if the unit type is invalid.

NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.


This method returns nothing.
getAngleValue
Used to retrieved the float value of the azimuth property.
Parameters
unitType

The unit type can be only an angle unit type (CSS_DEG, CSS_RAD or CSS_GRAD).

Return Value
The float value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raised if the unit type is invalid.


setIdentifier
Setting the identifier for the azimuth property will unset any previously set angle value. The value of azimuthType is set to CSS_IDENT
Parameters
identifier

The new identifier. If the identifier is "leftwards" or "rightward", the behind attribute is ignored.

behind

The new value for behind.

Exceptions
DOMException

SYNTAX_ERR: Raised if the specified identifier has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.


This method returns nothing.
Interface CSS2BackgroundPosition

The CSS2BackgroundPosition interface represents the background-position CSS Level 2 property.

IDL Definition

interface CSS2BackgroundPosition : CSSValue {
  readonly attribute unsigned short   horizontalType;
  readonly attribute unsigned short   verticalType;
  readonly attribute DOMString        horizontalIdentifier;
  readonly attribute DOMString        verticalIdentifier;
  float              getHorizontalPosition(in float horizontalType)
                                        raises(DOMException);
  float              getVerticalPosition(in float verticalType)
                                        raises(DOMException);
  void               setHorizontalPosition(in unsigned short horizontalType, 
                                           in float value)
                                        raises(DOMException);
  void               setVerticalPosition(in unsigned short verticalType, 
                                         in float value)
                                        raises(DOMException);
  void               setPositionIdentifier(in DOMString horizontalIdentifier, 
                                           in DOMString verticalIdentifier)
                                        raises(DOMException);
};

Attributes
horizontalType
A code defining the type of the horizontal value. It would be one CSS_PERCENTAGE, CSS_EMS, CSS_EXS, CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC, CSS_IDENT, CSS_INHERIT. If one of horizontal or vertical is CSS_IDENT or CSS_INHERIT, it's guaranteed that the other is the same.
verticalType
A code defining the type of the horizontal value. The code can be one of the following units : CSS_PERCENTAGE, CSS_EMS, CSS_EXS, CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC, CSS_IDENT, CSS_INHERIT. If one of horizontal or vertical is CSS_IDENT or CSS_INHERIT, it's guaranteed that the other is the same.
horizontalIdentifier
If horizontalType is CSS_IDENT or CSS_INHERIT, this attribute contains the string representation of the ident, otherwise it contains an empty string.
verticalIdentifier
If verticalType is CSS_IDENT or CSS_INHERIT, this attribute contains the string representation of the ident, otherwise it contains an empty string. The value is "center" if only the horizontalIdentifier has been set. The value is "inherit" if the horizontalIdentifier is "inherit".
Methods
getHorizontalPosition
This method is used to get the float value in a specified unit if the horizontalPosition represents a length or a percentage. If the float doesn't contain a float value or can't be converted into the specified unit, a DOMException is raised.
Parameters
horizontalType

The specified unit.

Return Value
The float value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the property doesn't contain a float or the value can't be converted.


getVerticalPosition
This method is used to get the float value in a specified unit if the verticalPosition represents a length or a percentage. If the float doesn't contain a float value or can't be converted into the specified unit, a DOMException is raised. The value is 50% if only the horizontal value has been specified.
Parameters
verticalType

The specified unit.

Return Value
The float value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the property doesn't contain a float or the value can't be converted.


setHorizontalPosition
This method is used to set the horizontal position with a specified unit. If the vertical value is not a percentage or a length, it sets the vertical position to 50%.
Parameters
horizontalType

The specified unit (a length or a percentage).

value

The new value.

Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the specified unit is not a length or a percentage.

NO_MODIFICATION_ALLOWED_ERR: Raises if this property is readonly.


This method returns nothing.
setVerticalPosition
This method is used to set the vertical position with a specified unit. If the horizontal value is not a percentage or a length, it sets the vertical position to 50%.
Parameters
verticalType

The specified unit (a length or a percentage).

value

The new value.

Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the specified unit is not a length or a percentage.

NO_MODIFICATION_ALLOWED_ERR: Raises if this property is readonly.


This method returns nothing.
setPositionIdentifier
Sets the identifiers. If the second identifier is the empty string, the vertical identifier is set to his default value ("center"). If the first identfier is "inherit, the second identifier is ignored and is set to "inherit".
Parameters
horizontalIdentifier

The new horizontal identifier.

verticalIdentifier

The new vertical identifier.

Exceptions
DOMException

SYNTAX_ERR: Raises if the identifiers have a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raises if this property is readonly.


This method returns nothing.
Interface CSS2BorderSpacing

The CSS2BorderSpacing interface represents the border-spacing CSS Level 2 property.

IDL Definition

interface CSS2BorderSpacing : CSSValue {
  readonly attribute unsigned short   horizontalType;
  readonly attribute unsigned short   verticalType;
  float              getHorizontalSpacing(in float horizontalType)
                                        raises(DOMException);
  float              getVerticalSpacing(in float verticalType)
                                        raises(DOMException);
  void               setHorizontalSpacing(in unsigned short horizontalType, 
                                          in float value)
                                        raises(DOMException);
  void               setVerticalSpacing(in unsigned short verticalType, 
                                        in float value)
                                        raises(DOMException);
  void               setInherit()();
};

Attributes
horizontalType
The A code defining the type of the value as defined in CSSValue. It would be one of CSS_EMS, CSS_EXS, CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC or CSS_INHERIT.
verticalType
The A code defining the type of the value as defined in CSSValue. It would be one of CSS_EMS, CSS_EXS, CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC or CSS_INHERIT.
Methods
getHorizontalSpacing
This method is used to get the float value in a specified unit if the horizontalSpacing represents a length. If the float doesn't contain a float value or can't be converted into the specified unit, a DOMException is raised.
Parameters
horizontalType

The specified unit.

Return Value
The float value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the property doesn't contain a float or the value can't be converted.


getVerticalSpacing
This method is used to get the float value in a specified unit if the verticalSpacing represents a length. If the float doesn't contain a float value or can't be converted into the specified unit, a DOMException is raised. The value is 0 if only the horizontal value has been specified.
Parameters
verticalType

The specified unit.

Return Value
The float value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the property doesn't contain a float or the value can't be converted.


setHorizontalSpacing
This method is used to set the horizontal spacing with a specified unit. If the vertical value is a length, it sets the vertical spacing to 0.
Parameters
horizontalType

The specified unit.

value

The new value.

Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the specified unit is not a length.

NO_MODIFICATION_ALLOWED_ERR: Raises if this property is readonly.


This method returns nothing.
setVerticalSpacing
This method is used to set the vertical spacing with a specified unit. If the horizontal value is not a length, it sets the vertical spacing to 0.
Parameters
verticalType

The specified unit.

value

The new value.

Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the specified unit is not a length or a percentage.

NO_MODIFICATION_ALLOWED_ERR: Raises if this property is readonly.


This method returns nothing.
setInherit()
Set this property as inherit. horizontalType and verticalType will be inherited.
This method has no parameters.
This method returns nothing.
This method raises no exceptions.
Interface CSS2CounterReset

The CSS2CounterReset interface represents a simple value for the counter-reset CSS Level 2 property.

IDL Definition

interface CSS2CounterReset {
           attribute DOMString        identifier;
                                        // raises(DOMException) on setting

           attribute short            reset;
                                        // raises(DOMException) on setting

};

Attributes
identifier
The element name.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified identifier has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this identifier is readonly.

reset
The reset (default value is 0).
Exceptions on setting
DOMException

NO_MODIFICATION_ALLOWED_ERR: Raised if this identifier is readonly.

Interface CSS2CounterIncrement

The CSS2CounterIncrement interface represents a imple value for the counter-increment CSS Level 2 property.

IDL Definition

interface CSS2CounterIncrement {
           attribute DOMString        identifier;
                                        // raises(DOMException) on setting

           attribute short            increment;
                                        // raises(DOMException) on setting

};

Attributes
identifier
The element name.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified identifier has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this identifier is readonly.

increment
The increment (default value is 1).
Exceptions on setting
DOMException

NO_MODIFICATION_ALLOWED_ERR: Raised if this identifier is readonly.

Interface CSS2Cursor

The CSS2Cursor interface represents the cursor CSS Level 2 property.

IDL Definition

interface CSS2Cursor : CSSValue {
           attribute unsigned short   cursorType;
  readonly attribute CSSValueList     uris;
           attribute DOMString        predefinedCursor;
                                        // raises(DOMException) on setting

};

Attributes
cursorType
A code defining the type of the property. It would one of CSS_UNKNOWN or CSS_INHERIT. If the type is CSS_UNKNOWN, then uris contains a list of URIs and predefinedCursor contains an ident. Setting this attribute from CSS_INHERIT to CSS_UNKNOWN will set the predefinedCursor to "auto".
uris
uris represents the list of URIs (CSS_URI) on the cursor property. The list can be empty.
predefinedCursor
This identifier represents a generic cursor name or an empty string.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

Interface CSS2PlayDuring

The CSS2PlayDuring interface represents the play-during CSS Level 2 property.

IDL Definition

interface CSS2PlayDuring : CSSValue {
  readonly attribute unsigned short   playDuringType;
           attribute DOMString        playDuringIdentifier;
                                        // raises(DOMException) on setting

           attribute DOMString        uri;
                                        // raises(DOMException) on setting

           attribute boolean          mix;
                                        // raises(DOMException) on setting

           attribute boolean          repeat;
                                        // raises(DOMException) on setting

};

Attributes
playDuringType
A code defining the type of the value as define in CSSvalue. It would be one of CSS_UNKNOWN, CSS_INHERIT, CSS_IDENT.
playDuringIdentifier
One of "inherit", "auto", "none" or the empty string if the playDuringType is CSS_UNKNOWN. On setting, it will set the uri to the empty string and mix and repeat to false.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

uri
The sound specified by the uri. It will set the playDuringType attribute to CSS_UNKNOWN.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

mix
true if the sound should be mixed. It will be ignored if the attribute doesn't contain a uri.
Exceptions on setting
DOMException

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

repeat
true if the sound should be repeated. It will be ignored if the attribute doesn't contain a uri.
Exceptions on setting
DOMException

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

Interface CSS2TextShadow

The CSS2TextShadow interface represents a simple value for the text-shadow CSS Level 2 property.

IDL Definition

interface CSS2TextShadow {
  readonly attribute CSSValue         color;
  readonly attribute CSSValue         horizontal;
  readonly attribute CSSValue         vertical;
  readonly attribute CSSValue         blur;
};

Attributes
color
Specified the color of the text shadow. The CSS Value can contain an empty string if no color has been specified.
horizontal
The horizontal position of the text shadow. 0 if no length has been specified.
vertical
The vertical position of the text shadow. 0 if no length has been specified.
blur
The blur radius of the text shadow. 0 if no length has been specified.

The following table specifies the type of CSSValue used to represent each property that can be specified in a CSSStyleDeclaration found in a CSSFontFaceRule for a CSS Level 2 style sheet.
Property NameRepresentation
font-familylist of strings and idents
font-stylelist of idents
font-variantlist of idents
font-weightlist of idents
font-stretchlist of idents
font-sizelist of lengths or ident
unicode-rangelist of strings
units-per-emnumber
srclist of CSS2FontFaceSrc
panose-1list of integers
stemvnumber
stemhnumber
slopenumber
cap-heightnumber
x-heightnumber
ascentnumber
descentnumber
widthslist of CSS2FontFaceWidths
bboxlist of numbers
definition-srcuri
baselinenumber
centerlinenumber
mathlinenumber
toplinenumber

Interface CSS2FontFaceSrc

The CSS2Cursor interface represents the src CSS Level 2 descriptor.

IDL Definition

interface CSS2FontFaceSrc {
           attribute DOMString        uri;
                                        // raises(DOMException) on setting

  readonly attribute CSSValueList     format;
           attribute DOMString        fontFaceName;
                                        // raises(DOMException) on setting

};

Attributes
uri
Specifies the source of the font, empty string otherwise.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

format
This attribute contains a list of strings for the format CSS function.
fontFaceName
Specifies the full font name of a locally installed font.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

Interface CSS2FontFaceWidths

The CSS2Cursor interface represents a simple value for the widths CSS Level 2 descriptor.

IDL Definition

interface CSS2FontFaceWidths {
           attribute DOMString        urange;
                                        // raises(DOMException) on setting

  readonly attribute CSSValueList     numbers;
};

Attributes
urange
The range for the characters.
Exceptions on setting
DOMException

SYNTAX_ERR: Raised if the specified CSS string value has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly.

numbers
A list of numbers representing the glyph widths.

The following table specifies the type of CSSValue used to represent each property that can be specified in a CSSStyleDeclaration found in a CSSPageRule for a CSS Level 2 style sheet.
Property NameRepresentation
marginnull
margin-top, margin,right, margin-bottom, margin-leftlength (no CSS_EMS and CSS_EXS), percentage, ident
markslist of idents
sizeCSS2PageSize

Interface CSS2PageSize

The CSS2Cursor interface represents the size CSS Level 2 descriptor.

IDL Definition

interface CSS2PageSize : CSSValue {
  readonly attribute unsigned short   widthType;
  readonly attribute unsigned short   heightType;
  readonly attribute DOMString        identifier;
  float              getWidth(in float widthType)
                                        raises(DOMException);
  float              getHeightSize(in float heightType)
                                        raises(DOMException);
  void               setWidthSize(in unsigned short widthType, 
                                  in float value)
                                        raises(DOMException);
  void               setHeightSize(in unsigned short heightType, 
                                   in float value)
                                        raises(DOMException);
  void               setIdentifier(in DOMString identifier)
                                        raises(DOMException);
};

Attributes
widthType
A code defining the type of the width of the page. It would be one of CSS_EMS, CSS_EXS, CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC, CSS_IDENT, CSS_INHERIT. If one of width or height is CSS_IDENT or CSS_INHERIT, it's guaranteed that the other is the same.
heightType
A code defining the type of the height of the page. It would be one of CSS_EMS, CSS_EXS, CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC, CSS_IDENT, CSS_INHERIT. If one of width or height is CSS_IDENT or CSS_INHERIT, it's guaranteed that the other is the same.
identifier
If width is CSS_IDENT or CSS_INHERIT, this attribute contains the string representation of the ident, otherwise it contains an empty string.
Methods
getWidth
This method is used to get the float value in a specified unit if the widthType represents a length. If the float doesn't contain a float value or can't be converted into the specified unit, a DOMException is raised.
Parameters
widthType

The specified unit.

Return Value
The float value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the property doesn't contain a float or the value can't be converted.


getHeightSize
This method is used to get the float value in a specified unit if the heightType represents a length. If the float doesn't contain a float value or can't be converted into the specified unit, a DOMException is raised. If only the width value has been specified, the height value is the same.
Parameters
heightType

The specified unit.

Return Value
The float value.
Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the property doesn't contain a float or the value can't be converted.


setWidthSize
This method is used to set the width position with a specified unit. If the heightType is not a length, it sets the height position to the same value.
Parameters
widthType

The specified unit.

value

The new value.

Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the specified unit is not a length or a percentage.

NO_MODIFICATION_ALLOWED_ERR: Raises if this property is readonly.


This method returns nothing.
setHeightSize
This method is used to set the height position with a specified unit. If the widthType is not a length, it sets the width position to the same value.
Parameters
heightType

The specified unit.

value

The new value.

Exceptions
DOMException

INVALID_ACCESS_ERR: Raises if the specified unit is not a length or a percentage.

NO_MODIFICATION_ALLOWED_ERR: Raises if this property is readonly.


This method returns nothing.
setIdentifier
Sets the identifier.
Parameters
identifier

The new identifier.

Exceptions
DOMException

SYNTAX_ERR: Raises if the identifier has a syntax error and is unparsable.

NO_MODIFICATION_ALLOWED_ERR: Raises if this property is readonly.


This method returns nothing.

The following interface may be implemented by a DOM implementation as a convenience to the DOM script user. A DOM consumer can use the hasFeature of the DOMImplementation interface to determine whether the CSS2Properties interface has been implemented by the DOM implementation. The festure string for the CSS2Properties interface is "CSS2Properties".

Interface CSS2Properties

The CSS2Properties interface represents a convenience mechanism for retrieving and setting properties within a CSSStyleDeclaration. The attributes of this interface correspond to all the properties specified in CSS2. Getting an attribute of this interface is equivalent to calling the getPropertyValue method of the CSSStyleDeclaration interface. Setting an attribute of this interface is equivalent to calling the setProperty method of the CSSStyleDeclaration interface.

A compliant implementation is not required to implement the CSS2Properties interface. If an implementation does implement this interface, the expectation is that language-specific methods can be used to cast from an instance of the CSSStyleDeclaration interface to the CSS2Properties interface.

If an implementation does implement this interface, it is expected to understand the specific syntax of the shorthand properties, and apply their semantics; when the margin property is set, for example, the marginTop, marginRight, marginBottom and marginLeft properties are actually being set by the underlying implementation.

When dealing with CSS "shorthand" properties, the shorthand properties should be decomposed into their component longhand properties as appropriate, and when querying for their value, the form returned should be the shortest form exactly equivalent to the declarations made in the ruleset. However, if there is no shorthand declaration that could be added to the ruleset without changing in any way the rules already declared in the ruleset (i.e., by adding longhand rules that were previously not declared in the ruleset), then the empty string should be returned for the shorthand property.

For example, querying for the font property should not return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt Arial, sans-serif" suffices (the normals are initial values, and are implied by use of the longhand property).

If the values for all the longhand properties that compose a particular string are the initial values, then a string consisting of all the initial values should be returned (e.g. a border-width value of "medium" should be returned as such, not as "").

For some shorthand properties that take missing values from other sides, such as the margin, padding, and border-[width|style|color] properties, the minimum number of sides possible should be used, i.e., "0px 10px" will be returned instead of "0px 10px 0px 10px".

If the value of a shorthand property can not be decomposed into its component longhand properties, as is the case for the font property with a value of "menu", querying for the values of the component longhand properties should return the empty string.

IDL Definition

interface CSS2Properties {
           attribute DOMString        azimuth;
           attribute DOMString        background;
           attribute DOMString        backgroundAttachment;
           attribute DOMString        backgroundColor;
           attribute DOMString        backgroundImage;
           attribute DOMString        backgroundPosition;
           attribute DOMString        backgroundRepeat;
           attribute DOMString        border;
           attribute DOMString        borderCollapse;
           attribute DOMString        borderColor;
           attribute DOMString        borderSpacing;
           attribute DOMString        borderStyle;
           attribute DOMString        borderTop;
           attribute DOMString        borderRight;
           attribute DOMString        borderBottom;
           attribute DOMString        borderLeft;
           attribute DOMString        borderTopColor;
           attribute DOMString        borderRightColor;
           attribute DOMString        borderBottomColor;
           attribute DOMString        borderLeftColor;
           attribute DOMString        borderTopStyle;
           attribute DOMString        borderRightStyle;
           attribute DOMString        borderBottomStyle;
           attribute DOMString        borderLeftStyle;
           attribute DOMString        borderTopWidth;
           attribute DOMString        borderRightWidth;
           attribute DOMString        borderBottomWidth;
           attribute DOMString        borderLeftWidth;
           attribute DOMString        borderWidth;
           attribute DOMString        bottom;
           attribute DOMString        captionSide;
           attribute DOMString        clear;
           attribute DOMString        clip;
           attribute DOMString        color;
           attribute DOMString        content;
           attribute DOMString        counterIncrement;
           attribute DOMString        counterReset;
           attribute DOMString        cue;
           attribute DOMString        cueAfter;
           attribute DOMString        cueBefore;
           attribute DOMString        cursor;
           attribute DOMString        direction;
           attribute DOMString        display;
           attribute DOMString        elevation;
           attribute DOMString        emptyCells;
           attribute DOMString        cssFloat;
           attribute DOMString        font;
           attribute DOMString        fontFamily;
           attribute DOMString        fontSize;
           attribute DOMString        fontSizeAdjust;
           attribute DOMString        fontStretch;
           attribute DOMString        fontStyle;
           attribute DOMString        fontVariant;
           attribute DOMString        fontWeight;
           attribute DOMString        height;
           attribute DOMString        left;
           attribute DOMString        letterSpacing;
           attribute DOMString        lineHeight;
           attribute DOMString        listStyle;
           attribute DOMString        listStyleImage;
           attribute DOMString        listStylePosition;
           attribute DOMString        listStyleType;
           attribute DOMString        margin;
           attribute DOMString        marginTop;
           attribute DOMString        marginRight;
           attribute DOMString        marginBottom;
           attribute DOMString        marginLeft;
           attribute DOMString        markerOffset;
           attribute DOMString        marks;
           attribute DOMString        maxHeight;
           attribute DOMString        maxWidth;
           attribute DOMString        minHeight;
           attribute DOMString        minWidth;
           attribute DOMString        orphans;
           attribute DOMString        outline;
           attribute DOMString        outlineColor;
           attribute DOMString        outlineStyle;
           attribute DOMString        outlineWidth;
           attribute DOMString        overflow;
           attribute DOMString        padding;
           attribute DOMString        paddingTop;
           attribute DOMString        paddingRight;
           attribute DOMString        paddingBottom;
           attribute DOMString        paddingLeft;
           attribute DOMString        page;
           attribute DOMString        pageBreakAfter;
           attribute DOMString        pageBreakBefore;
           attribute DOMString        pageBreakInside;
           attribute DOMString        pause;
           attribute DOMString        pauseAfter;
           attribute DOMString        pauseBefore;
           attribute DOMString        pitch;
           attribute DOMString        pitchRange;
           attribute DOMString        playDuring;
           attribute DOMString        position;
           attribute DOMString        quotes;
           attribute DOMString        richness;
           attribute DOMString        right;
           attribute DOMString        size;
           attribute DOMString        speak;
           attribute DOMString        speakHeader;
           attribute DOMString        speakNumeral;
           attribute DOMString        speakPunctuation;
           attribute DOMString        speechRate;
           attribute DOMString        stress;
           attribute DOMString        tableLayout;
           attribute DOMString        textAlign;
           attribute DOMString        textDecoration;
           attribute DOMString        textIndent;
           attribute DOMString        textShadow;
           attribute DOMString        textTransform;
           attribute DOMString        top;
           attribute DOMString        unicodeBidi;
           attribute DOMString        verticalAlign;
           attribute DOMString        visibility;
           attribute DOMString        voiceFamily;
           attribute DOMString        volume;
           attribute DOMString        whiteSpace;
           attribute DOMString        widows;
           attribute DOMString        width;
           attribute DOMString        wordSpacing;
           attribute DOMString        zIndex;
};

Attributes
azimuth
See the azimuth property definition in CSS2.
background
See the background property definition in CSS2.
backgroundAttachment
See the background-attachment property definition in CSS2.
backgroundColor
See the background-color property definition in CSS2.
backgroundImage
See the background-image property definition in CSS2.
backgroundPosition
See the background-position property definition in CSS2.
backgroundRepeat
See the background-repeat property definition in CSS2.
border
See the border property definition in CSS2.
borderCollapse
See the border-collapse property definition in CSS2.
borderColor
See the border-color property definition in CSS2.
borderSpacing
See the border-spacing property definition in CSS2.
borderStyle
See the border-style property definition in CSS2.
borderTop
See the border-top property definition in CSS2.
borderRight
See the border-right property definition in CSS2.
borderBottom
See the border-bottom property definition in CSS2.
borderLeft
See the border-left property definition in CSS2.
borderTopColor
See the border-top-color property definition in CSS2.
borderRightColor
See the border-right-color property definition in CSS2.
borderBottomColor
See the border-bottom-color property definition in CSS2.
borderLeftColor
See the border-left-color property definition in CSS2.
borderTopStyle
See the border-top-style property definition in CSS2.
borderRightStyle
See the border-right-style property definition in CSS2.
borderBottomStyle
See the border-bottom-style property definition in CSS2.
borderLeftStyle
See the border-left-style property definition in CSS2.
borderTopWidth
See the border-top-width property definition in CSS2.
borderRightWidth
See the border-right-width property definition in CSS2.
borderBottomWidth
See the border-bottom-width property definition in CSS2.
borderLeftWidth
See the border-left-width property definition in CSS2.
borderWidth
See the border-width property definition in CSS2.
bottom
See the bottom property definition in CSS2.
captionSide
See the caption-side property definition in CSS2.
clear
See the clear property definition in CSS2.
clip
See the clip property definition in CSS2.
color
See the color property definition in CSS2.
content
See the content property definition in CSS2.
counterIncrement
See the counter-increment property definition in CSS2.
counterReset
See the counter-reset property definition in CSS2.
cue
See the cue property definition in CSS2.
cueAfter
See the cue-after property definition in CSS2.
cueBefore
See the cue-before property definition in CSS2.
cursor
See the cursor property definition in CSS2.
direction
See the direction property definition in CSS2.
display
See the display property definition in CSS2.
elevation
See the elevation property definition in CSS2.
emptyCells
See the empty-cells property definition in CSS2.
cssFloat
See the float property definition in CSS2.
font
See the font property definition in CSS2.
fontFamily
See the font-family property definition in CSS2.
fontSize
See the font-size property definition in CSS2.
fontSizeAdjust
See the font-size-adjust property definition in CSS2.
fontStretch
See the font-stretch property definition in CSS2.
fontStyle
See the font-style property definition in CSS2.
fontVariant
See the font-variant property definition in CSS2.
fontWeight
See the font-weight property definition in CSS2.
height
See the height property definition in CSS2.
left
See the left property definition in CSS2.
letterSpacing
See the letter-spacing property definition in CSS2.
lineHeight
See the line-height property definition in CSS2.
listStyle
See the list-style property definition in CSS2.
listStyleImage
See the list-style-image property definition in CSS2.
listStylePosition
See the list-style-position property definition in CSS2.
listStyleType
See the list-style-type property definition in CSS2.
margin
See the margin property definition in CSS2.
marginTop
See the margin-top property definition in CSS2.
marginRight
See the margin-right property definition in CSS2.
marginBottom
See the margin-bottom property definition in CSS2.
marginLeft
See the margin-left property definition in CSS2.
markerOffset
See the marker-offset property definition in CSS2.
marks
See the marks property definition in CSS2.
maxHeight
See the max-height property definition in CSS2.
maxWidth
See the max-width property definition in CSS2.
minHeight
See the min-height property definition in CSS2.
minWidth
See the min-width property definition in CSS2.
orphans
See the orphans property definition in CSS2.
outline
See the outline property definition in CSS2.
outlineColor
See the outline-color property definition in CSS2.
outlineStyle
See the outline-style property definition in CSS2.
outlineWidth
See the outline-width property definition in CSS2.
overflow
See the overflow property definition in CSS2.
padding
See the padding property definition in CSS2.
paddingTop
See the padding-top property definition in CSS2.
paddingRight
See the padding-right property definition in CSS2.
paddingBottom
See the padding-bottom property definition in CSS2.
paddingLeft
See the padding-left property definition in CSS2.
page
See the page property definition in CSS2.
pageBreakAfter
See the page-break-after property definition in CSS2.
pageBreakBefore
See the page-break-before property definition in CSS2.
pageBreakInside
See the page-break-inside property definition in CSS2.
pause
See the pause property definition in CSS2.
pauseAfter
See the pause-after property definition in CSS2.
pauseBefore
See the pause-before property definition in CSS2.
pitch
See the pitch property definition in CSS2.
pitchRange
See the pitch-range property definition in CSS2.
playDuring
See the play-during property definition in CSS2.
position
See the position property definition in CSS2.
quotes
See the quotes property definition in CSS2.
richness
See the richness property definition in CSS2.
right
See the right property definition in CSS2.
size
See the size property definition in CSS2.
speak
See the speak property definition in CSS2.
speakHeader
See the speak-header property definition in CSS2.
speakNumeral
See the speak-numeral property definition in CSS2.
speakPunctuation
See the speak-punctuation property definition in CSS2.
speechRate
See the speech-rate property definition in CSS2.
stress
See the stress property definition in CSS2.
tableLayout
See the table-layout property definition in CSS2.
textAlign
See the text-align property definition in CSS2.
textDecoration
See the text-decoration property definition in CSS2.
textIndent
See the text-indent property definition in CSS2.
textShadow
See the text-shadow property definition in CSS2.
textTransform
See the text-transform property definition in CSS2.
top
See the top property definition in CSS2.
unicodeBidi
See the unicode-bidi property definition in CSS2.
verticalAlign
See the vertical-align property definition in CSS2.
visibility
See the visibility property definition in CSS2.
voiceFamily
See the voice-family property definition in CSS2.
volume
See the volume property definition in CSS2.
whiteSpace
See the white-space property definition in CSS2.
widows
See the widows property definition in CSS2.
width
See the width property definition in CSS2.
wordSpacing
See the word-spacing property definition in CSS2.
zIndex
See the z-index property definition in CSS2.

4.4. Extensions to Level 1 Interfaces

4.4.1. HTMLElement inline style

Inline style information attached to HTML elements is exposed through the style attribute. This represents the contents of the STYLE attribute for HTML elements.


	interface HTMLElementStyle : HTMLElement {
	readonly attribute CSSStyleDeclaration style;
	};
      

4.4.2. HTMLStyleElement style sheet

The style sheet associated with an HTML STYLE element is accessible via the styleSheet attribute.


	interface HTMLStyleElement2 : HTMLStyleElement {
	readonly attribute StyleSheet styleSheet;
	};
      

4.4.3. HTMLLinkElement style sheet

The styleSheet associated with an HTML LINK element with a REL of "stylesheet" or "alternate stylesheet" is not accessible directly. This is because LINK elements are not used purely as a stylesheet linking mechanism. The styleSheet property on LINK elements with other relationships would be incongruous.

4.5. Unresolved Issues

  1. The CSS Editorial team is considering a way to represent comments that exist within a CSS style sheet. Our expectation is that absolute position of comments may not be maintained, but relative position (with respect to CSS rules and CSS properties) and the actual contents of the comment will be.
  2. The CSS Editorial team is considering a mechanism to allow users to retrieve the cascaded and computed styles for a specific element.We do not intend to provide access to the actual style of specific elements in this level of the CSS DOM. Implementation of the CSS DOM does not require an actual rendering engine for any other reason, and we see that requirement as a limitation on the potential implementations of the CSS DOM.
  3. The CSS Editorial team is considering a mechanism to allow users to change the cascaded style for a specific element, or to create rules in an "override" style sheet.
  4. The Working Group is still considering whether it should be possible to create style sheets outside the context of a document, abstract from any XML- or HTML-specific embedding or linking of a style sheet.
  5. The group is undecided whether to put a cssText attribute on the CSSStyleSheet, which would provide a textual representation of the entire style sheet. Setting this attribute would result in the resetting of all the rules in the style sheet.
  6. The group intends to create a CSSException exception that derives from DOMException. This would allow a DOM user to catch CSS-specific exceptions.