设计 DOM 级别2 层叠样式表 (CSS) 接口的目的是将 CSS 结构展现在对象模型的使用者面前。层叠样式表是一种声明语法,用于定义格式化和描画 Web 文档的表达规则、属性和辅助结构。本文档规定了一种程序化读取和修改 CSS (特别是 CSS 级别2 [CSS2])) 中提供的丰富的样式和表达控制的机制。这种机制增强了 CSS,它可以动态地控制加入和移除单个的样式表,也可以动态地处理 CSS 规则和属性 。
这些 CSS 接口是以逻辑结构而非物理结构来组织的。通过文档接口可以存取其上引用或内嵌的所有样式表的集合。该集合中的每一项都展现了所有被引用或内嵌在 HTML 和 XML 文档中的样式表所共同具有的属性。样式表的接口在文档对象模型样式表中描述。用户定义的样式表并不能通过这个集合来存取,部分上是出于隐私的考虑(当然也有关于读写的问题)。
每一个 CSS 样式表另外还有一个对应的 CSSStyleSheet
接口。该接口允许存取 CSS 样式表内规则的集合以及修改这个集合的方法。CSS2 中每一种具体的规则都有其相对应的接口。(例如,样式声明(style
declaration)、@import 规则或 @font-face 规则),这些规则有一个共享的通用接口 —— CSSRule 接口.
最常见的规则类型是样式声明。表示这种类型的规则 CSSStyleRule 接口
支持存取该规则中 CSS 选择符(selector)的字符串值,通过 CSSStyleDeclaration 接口也支持存取规则中的属性声明。
最后描述了一个可选的 CSS2Properties
接口。 该接口(如果实现了的话)提供了 CSS 级别2 中所有属性的字符串值。
文档对象模型中所有的 CSS 对象都是 "活着的",也就是说,样式表中的一个改变会反映到已计算的(computed)实际样式中。
本节中的接口都是基本的 CSS 接口,所有 CSS 模块的一致实现都必须支持它们。这些接口明确表示了 CSS 样式表。
DOM 应用程序可以使用 DOMImplementation 接口中的方法 hasFeature(feature,
version) (参数分别为 "CSS" 和 "2.0")来确定一个 DOM 实现是否支持本模块。一个实现要想能够完全支持本模块,它也必须同时支持
DOM 级别2 核心 规范 [DOM 级别2 核心] 中定义的 "核心" 特性,以及 DOM 级别2 视图 规范 [DOM 级别2 视图]中定义的“视图”特性。另请参阅
DOM 级别2 核心 规范 [DOM 级别2 核心]中的一致性信息。
CSSStyleSheet 接口是表示一个 CSS 样式表的具体接口,即表示了内容类型(Content type)为"text/css"的样式表。
// DOM 级别2 中引入:
interface CSSStyleSheet : stylesheets::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);
};
cssRules 类型 CSSRuleList,
只读ownerRule 类型 CSSRule, 只读@import 规则,这个 ownerRule
属性就包含一个 CSSImportRule。
这种情况下,该 StyleSheet
接口中的 ownerNode 属性为 null。 如果该样式表来自一个 DOM 元素或者处理指令,ownerRule
属性就是 null,而 ownerNode 属性会包含这个节点(Node)。deleteRuleindex 类型
unsigned long|
|
INDEX_SIZE_ERR: 若给定的索引与样式表规则列表中的规则不一致。 NO_MODIFICATION_ALLOWED_ERR: 若该样式表是只读的。 |
insertRulerule 类型
DOMStringindex 类型
unsigned long|
|
新插入的规则在样式表规则列表中的索引。 |
|
|
HIERARCHY_REQUEST_ERR: 若该规则不能被插在指定索引位置。比如,在一个标准的规则集合(rule set)或者其它at-规则之后插入一个 INDEX_SIZE_ERR: 若给定的索引不是一个合法的插入点。 NO_MODIFICATION_ALLOWED_ERR: 若该样式表是只读的。 SYNTAX_ERR: 若给定的规则有语法错误而不可分析。 |
CSSRuleList 接口抽象了 CSS 规则的有序集合。
可以通过从0开始的整数索引来存取 CSSRuleList 中的项目。
// DOM 级别2 中引入:
interface CSSRuleList {
readonly attribute unsigned long length;
CSSRule item(in unsigned long index);
};
CSSRule 接口是表示任何类型的 CSS 语句(statement)的抽象基接口。包括 规则集合(rule set) 和 at-规则。 我们希望一个实现保留
CSS 样式表中所有的规则,即使是语法分析器不认识的规则。不认识的规则用 CSSUnknownRule 接口表示。
// DOM 级别2 中引入:
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;
// 赋值时抛出 DOMException
readonly attribute CSSStyleSheet parentStyleSheet;
readonly attribute CSSRule parentRule;
};
指明规则类型的一个整数。
CHARSET_RULECSSCharsetRule.FONT_FACE_RULECSSFontFaceRule.IMPORT_RULECSSImportRule.MEDIA_RULECSSMediaRule.PAGE_RULECSSPageRule.STYLE_RULECSSStyleRule.UNKNOWN_RULECSSUnknownRule.cssText 类型
DOMString|
|
SYNTAX_ERR: 若给定的字符串有语法错误而不可分析。 INVALID_MODIFICATION_ERR: 若给定的字符串代表的规则类型与当前规则不符。 HIERARCHY_REQUEST_ERR: 若该规则不能被插在样式表的这个位置。 NO_MODIFICATION_ALLOWED_ERR: 若该规则是只读的。 |
parentRule 类型 CSSRule, 只读null.parentStyleSheet 类型 CSSStyleSheet,
readonlytype 类型 unsigned
short,只读type 的值,使用具体的强制转换方法将
CSSRule 接口的实例转换成具体的规则接口。CSSStyleRule 接口表示 CSS 样式表中的一个规则集合(rule set)。
// DOM 级别2 中引入:
interface CSSStyleRule : CSSRule {
attribute DOMString selectorText;
// 赋值时抛出 DOMException
readonly attribute CSSStyleDeclaration style;
};
selectorText 类型 DOMString|
|
SYNTAX_ERR: 若给定的 CSS 字符串有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该规则是只读的。 |
style 类型 CSSStyleDeclaration,
readonlyCSSMediaRule 接口表示样式表中的
@media 规则。一个 @media 规则可以用来给不同媒体类型的样式规则划定界限。
// DOM 级别2 中引入:
interface CSSMediaRule : CSSRule {
readonly attribute stylesheets::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);
};
cssRules 类型 CSSRuleList,只读media 类型
stylesheets::MediaList,只读deleteRuleindex 类型
unsigned long|
|
INDEX_SIZE_ERR: 若给定的索引与媒体规则列表中要删除的规则不一致。 NO_MODIFICATION_ALLOWED_ERR: 若该媒体规则是只读的。 |
insertRulerule 类型
DOMStringindex 类型
unsigned long|
|
新插入的规则在媒体块规则列表中的索引。 |
|
|
HIERARCHY_REQUEST_ERR: 若该规则不能被插在指定索引位置。比如,在一个标准的规则集合(rule set)或者其它at-规则之后插入一个 @import。 INDEX_SIZE_ERR: 若给定的索引不是一个合法的插入点。 NO_MODIFICATION_ALLOWED_ERR: 若该媒体块是只读的。 SYNTAX_ERR: 若给定的规则有语法错误而不可分析。 |
CSSFontFaceRule 接口表示 CSS 样式表中的
@font-face 规则。@font-face 规则用于包含一系列的字体的描述。
// DOM 级别2 中引入:
interface CSSFontFaceRule : CSSRule {
readonly attribute CSSStyleDeclaration style;
};
style 类型 CSSStyleDeclaration,只读CSSPageRule 接口表示 CSS 样式表中的
@page 规则。@page 规则用于规定分页媒体中页面的尺寸、方向、边距等等。
// DOM 级别2 中引入:
interface CSSPageRule : CSSRule {
attribute DOMString selectorText;
// 赋值时抛出 DOMException
readonly attribute CSSStyleDeclaration style;
};
selectorText 类型
DOMString|
|
SYNTAX_ERR: 若给定的 CSS 字符串有语法错误而不能分析。 NO_MODIFICATION_ALLOWED_ERR: 若该规则是只读的。 |
style 类型 CSSStyleDeclaration,
readonlyCSSImportRule 接口 CSS 中的
@import 规则。@import 规则用于导入其它样式表中的规则。
// DOM 级别2 中引入:
interface CSSImportRule : CSSRule {
readonly attribute DOMString href;
readonly attribute stylesheets::MediaList media;
readonly attribute CSSStyleSheet styleSheet;
};
href 类型
DOMString,只读"url(...)"。media 类型
stylesheets::MediaList,只读styleSheet 类型
CSSStyleSheet,
readonlynull(比如,用户代理不支持某种媒体类型下的样式表。)
CSSCharsetRule 接口表示 CSS 样式表中的
@charset 规则。 其 encoding
属性不影响 DOM 对象中的文本数据,这些数据总是用 UTF-16 编码。在一个样式表被装载以后,属性
encoding 的值就是定义在 @charset 规则中的值。如果原文档中没有
@charset,就不会有 CSSCharsetRule 生成。encoding 属性的值
也可以在样式表序列化(serialization)时所使用。
@charset 规则 (因而也就是
CSSCharsetRule)的值可以与其文档的编码不一样。字符编码(比如
HTTP 头中定义的字符编码信息)是有优先权的(参见
CSS 文档表示),但在接口 CSSCharsetRule 中并没有反映这一点。
// DOM 级别2 中引入:
interface CSSCharsetRule : CSSRule {
attribute DOMString encoding;
// 赋值时抛出 DOMException
};
encoding 类型
DOMString@charset规则中的编码信息。|
|
SYNTAX_ERR: 如果给定的编码值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该编码规则是只读的。 |
CSSUnknownRule 接口表示当前用户代理不支持的at-规则。
// DOM 级别2 中引入:
interface CSSUnknownRule : CSSRule {
};
CSSStyleDeclaration 接口表示一个
CSS 声明块。 本接口可以用来确定一个声明块中当前设置的样式属性,也可以用来显示地设置声明块中的样式属性。
尽管一个实现不需要认识一个 CSS 声明块所有的 CSS 属性,我们仍希望它能够提供方法,使得使用者通过
CSSStyleDeclaration 接口可以存取样式表中规定的所有样式属性。并且,支持了一个级别的实现同时也应该正确处理该级别下的
CSS 略写(shorthand)属性。有关略写属性的进一步讨论,参见 CSS2Properties
接口。
本接口也提供了对元素的已计算(computed)值的只读存取。参见 ViewCSS 接口。
注意: CSS 对象模型并不支持存取 CSS 层叠算法中的规定的(specified)或实际的(actual)值。
// DOM 级别2 中引入:
interface CSSStyleDeclaration {
attribute DOMString cssText;
// 赋值时抛出 DOMException
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;
};
cssText 类型
DOMString|
|
SYNTAX_ERR: 若给定的 CSS 字符串有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 若该声明是只读的或者其中的一个属性是只读的。 |
length 类型
unsigned long,只读parentRule 类型 CSSRule,只读null 如果该 CSSStyleDeclaration 没有附加到任何的 CSSRule 中。getPropertyCSSValuegetPropertyPriority"important" 限定词)。
propertyName 类型
DOMString|
|
表示优先级的字符串(比如 |
getPropertyValuepropertyName 类型
DOMString|
|
若该属性在该声明块中被显示赋值则返回该属性的值,否则返回空的字符串。 |
itemindex 类型
unsigned long|
|
在给定位置处的属性的名字。如果再此位置该属性不存在则返回空的字符串。 |
removePropertypropertyName 类型
DOMString|
|
若该属性在该声明块中被显示赋值则返回该属性的值。若该属性没有被显示赋值或者给定的名字不是已知的 CSS 属性。 |
|
|
NO_MODIFICATION_ALLOWED_ERR: 若该声明或者该属性是只读的。 |
setPropertypropertyName 类型
DOMStringvalue 类型
DOMStringpriority 类型
DOMString"important")。|
|
SYNTAX_ERR: 若给定的值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 若该声明或该属性只读。 |
CSSValue 接口表示一个简单或复杂的 CSS 值。一个 CSSValue 对象只出现在 CSS 属性的上下文中。
// DOM 级别2 中引入:
interface CSSValue {
// UnitTypes
const unsigned short CSS_INHERIT = 0;
const unsigned short CSS_PRIMITIVE_VALUE = 1;
const unsigned short CSS_VALUE_LIST = 2;
const unsigned short CSS_CUSTOM = 3;
attribute DOMString cssText;
// 赋值时抛出 DOMException
readonly attribute unsigned short cssValueType;
};
指明值的单位类型的整数。
CSS_CUSTOMCSS_INHERITcssText 的值是 "inherit"。CSS_PRIMITIVE_VALUECSSPrimitiveValue 接口的实例可通过具体的强制转换方法由 CSSValue 接口的实例转换而来。CSS_VALUE_LISTCSSValue 的列表。CSSValueList 接口的实例可以通过具体的强制转换方法由 CSSValue 接口的实例转换而来。cssText 类型
DOMString|
|
SYNTAX_ERR: 若给定的 CSS 字符串值有语法错误(依据其对应的属性来判断)或者不可分析。 INVALID_MODIFICATION_ERR: 若给定的 CSS 字符串值的类型与该属性的定义不同。 NO_MODIFICATION_ALLOWED_ERR: 若该值是只读的。 |
cssValueType 类型
unsigned short, readonlyCSSPrimitiveValue 接口表示一个
CSS 值。通过本接口可以用于确定一个声明块中当前设置的样式属性的值,也可以用于明确地在声明块中设置一个样式属性的值。本接口的实例可以从 CSSStyleDeclaration
接口的 getPropertyCSSValue 方法获得。一个 CSSPrimitiveValue 对象只出现在 CSS 属性的上下文中。
可以在绝对的值之间做转换(从毫米到厘米,从角度到弧度,等等),但不能在相对的值之间做转换。(比如,一个像素值不能转成厘米值。)百分数不能转换,因为它总是相对于其父亲的值(或另一个属性值)。然而颜色百分数例外:因为颜色百分数是相对于范围
0-255 的,所以它可以转化成一个数。(参见 RGBColor接口)。
// DOM 级别2 中引入:
interface CSSPrimitiveValue : CSSValue {
// UnitTypes
const unsigned short CSS_UNKNOWN = 0;
const unsigned short CSS_NUMBER = 1;
const unsigned short CSS_PERCENTAGE = 2;
const unsigned short CSS_EMS = 3;
const unsigned short CSS_EXS = 4;
const unsigned short CSS_PX = 5;
const unsigned short CSS_CM = 6;
const unsigned short CSS_MM = 7;
const unsigned short CSS_IN = 8;
const unsigned short CSS_PT = 9;
const unsigned short CSS_PC = 10;
const unsigned short CSS_DEG = 11;
const unsigned short CSS_RAD = 12;
const unsigned short CSS_GRAD = 13;
const unsigned short CSS_MS = 14;
const unsigned short CSS_S = 15;
const unsigned short CSS_HZ = 16;
const unsigned short CSS_KHZ = 17;
const unsigned short CSS_DIMENSION = 18;
const unsigned short CSS_STRING = 19;
const unsigned short CSS_URI = 20;
const unsigned short CSS_IDENT = 21;
const unsigned short CSS_ATTR = 22;
const unsigned short CSS_COUNTER = 23;
const unsigned short CSS_RECT = 24;
const unsigned short CSS_RGBCOLOR = 25;
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);
};
整数,指明应用到该值上的单位类型。
CSS_ATTRgetStringValue 方法得到。CSS_CMgetFloatValue 方法得到。CSS_COUNTERgetCounterValue 方法得到。CSS_DEGgetFloatValue 方法得到。CSS_DIMENSIONgetFloatValue method.CSS_EMSgetFloatValue 方法得到。CSS_EXSgetFloatValue 方法得到。CSS_GRADgetFloatValue 方法得到。CSS_HZgetFloatValue 方法得到。CSS_IDENTgetStringValue 方法得到。CSS_INgetFloatValue 方法得到。CSS_KHZgetFloatValue 方法得到。CSS_MMgetFloatValue 方法得到。CSS_MSgetFloatValue 方法得到。CSS_NUMBERgetFloatValue 方法得到。CSS_PCgetFloatValue 方法得到。CSS_PERCENTAGEgetFloatValue 方法得到。CSS_PTgetFloatValue 方法得到。CSS_PXgetFloatValue 方法得到。CSS_RADgetFloatValue 方法得到。CSS_RECTgetRectValue 方法得到。CSS_RGBCOLORgetRGBColorValue 方法得到。CSS_SgetFloatValue 方法得到。CSS_STRINGgetStringValue 方法得到。CSS_UNKNOWNcssText 属性才能得到该值。CSS_URIgetStringValue 方法得到。primitiveType
类型 unsigned short,只读getCounterValuegetFloatValueDOMException。
unitType 类型
unsigned shortCSS_NUMBER,
CSS_PERCENTAGE, CSS_EMS,
CSS_EXS, 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)。|
|
给定单位的浮点数。 |
|
|
INVALID_ACCESS_ERR: 若该 CSS 值不包含浮点数值,或者该浮点数值不能够转化到给定的单位。 |
getRGBColorValuegetRectValuegetStringValueDOMException。
注意: 一些属性(象 'font-family' 或 'voice-family') 将一个用空白符分隔开的标识符列表转化为一个字符串。
|
|
当前单位下的字符串值。当前 |
|
|
INVALID_ACCESS_ERR: 若该 CSS 值不包含字符串值。 |
setFloatValueDOMException。
unitType 类型
unsigned shortCSS_NUMBER,
CSS_PERCENTAGE, CSS_EMS,
CSS_EXS, 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 类型
float|
|
INVALID_ACCESS_ERR: 若该属性不接受给定的浮点数或单位类型。 NO_MODIFICATION_ALLOWED_ERR: 若该属性是只读的。 |
setStringValueDOMException。
stringType 类型
unsigned shortCSS_STRING,
CSS_URI, CSS_IDENT,和
CSS_ATTR)。stringValue 类型
DOMString|
|
INVALID_ACCESS_ERR: 若给定的 CSS 值中不包含字符串值或者该字符串值不能转换到给定的单位。 NO_MODIFICATION_ALLOWED_ERR: 若该属性是只读的。 |
CSSValueList 接口抽象了 CSS 值的有序集合。
有些属性的语法允许空列表。此时这些属性的值为 none 标识符。 因此,一个空列表意味着该属性有一个 none 的值。
通过从零开始的整数索引可以存取 CSSValueList 中的项目。
RGBColor 接口用于表示任何的
RGB 颜色 值。这个接口反映着所对应样式属性的值。因而对 CSSPrimitiveValue 对象的修改将影响所对应的样式属性。
一个规定的(specified) RGB 颜色值是不会被裁减的(即使所给的数值超出了 0-255 或 0%-100%的范围)。而已计算的(computed) RGB 颜色根据输出的设备作裁减。
即使一个样式表只能包含整数的颜色值,在内部这个整数依然是用浮点数的形式来存储的,并且这个整数在规定的(specified)和已计算的(computed)样式中可以当作浮点数来使用。
一个百分比表示的颜色总可以转化成一个数值表示的颜色,反之亦然。
// DOM 级别2 中引入:
interface RGBColor {
readonly attribute CSSPrimitiveValue red;
readonly attribute CSSPrimitiveValue green;
readonly attribute CSSPrimitiveValue blue;
};
blue 类型 CSSPrimitiveValue,
只读green 类型 CSSPrimitiveValue,只读red 类型 CSSPrimitiveValue,只读Rect 接口用于表示任何的
矩形 值。该接口反映着所对应的样式属性的值。因而,对 CSSPrimitiveValue 对象的修改将影响所对应的样式属性。
// DOM 级别2 中引入:
interface Rect {
readonly attribute CSSPrimitiveValue top;
readonly attribute CSSPrimitiveValue right;
readonly attribute CSSPrimitiveValue bottom;
readonly attribute CSSPrimitiveValue left;
};
bottom 类型 CSSPrimitiveValue,只读left 类型 CSSPrimitiveValue,只读right 类型 CSSPrimitiveValue,只读top 类型 CSSPrimitiveValue,只读Counter 接口用于表示任何的
计数器或计数器函数值。本接口反映着所对应的样式属性的值。
// DOM 级别2 中引入:
interface Counter {
readonly attribute DOMString identifier;
readonly attribute DOMString listStyle;
readonly attribute DOMString separator;
};
identifier 类型
DOMString, readonlylistStyle 类型
DOMString,只读separator of type
DOMString, readonly本接口表示一个 CSS 视图。getComputedStyle 方法提供对一个元素的
已计算(computed)值的只读存取。
期待的做法是,ViewCSS 的实例可以通过具体的强制转换方法由
AbstractView 接口的实例转换而来。
既然一个已计算的(computed)样式已经和一个
Element 节点发生联系,如果从文档中删除该元素,相关联的 CSSStyleDeclaration
和 CSSValue 就不再有效。
// DOM 级别2 中引入:
interface ViewCSS : views::AbstractView {
CSSStyleDeclaration getComputedStyle(in Element elt,
in DOMString pseudoElt);
};
getComputedStyleelt 类型
ElementpseudoElt 类型
DOMStringnull 如果没有伪元素。|
已计算的(computed)样式。返回的 |
本接口表示一个带有 CSS 视图的文档。
getOverrideStyle 方法提供了一种机制,使用这种机制
DOM 作者可以立即影响一个元素的样式,而无需修改文档的显示链接的样式表或者元素的内嵌样式。在层叠算法出现在作者样式表之后的样式表被称为覆盖(override)样式表。这种样式表的优先级要高于作者样式表。
"!important" 声明的优先级仍然要高于正常的声明。覆盖样式表、作者样式表和用户样式表都可以包含
"!important" 声明。用户 "!important" 规则比覆盖和作者的 "!important" 规则的优先级都高,而覆盖
"!important" 规则的优先级高于作者的 "!important" 规则。
期待的做法是,DocumentCSS 接口的实例可以通过具体的强制转换方法由
Document 接口的实例转换而来。
// DOM 级别2 中引入:
interface DocumentCSS : stylesheets::DocumentStyle {
CSSStyleDeclaration getOverrideStyle(in Element elt,
in DOMString pseudoElt);
};
getOverrideStyleelt 类型
ElementpseudoElt 类型
DOMStringnull 如果没有定义伪元素。|
覆盖样式声明。 |
本接口允许 DOM 用户创建一个与文档上下文无关的 CSSStyleSheet。这里没有办法将这个新创建的 CSSStyleSheet 与 DOM 级别2 的文档相关联.
// DOM 级别2 中引入:
interface DOMImplementationCSS : DOMImplementation {
CSSStyleSheet createCSSStyleSheet(in DOMString title,
in DOMString media)
raises(DOMException);
};
附加到元素上的内嵌样式的信息是通过 style 属性来定义的。这些信息就是
HTML 元素 (或在其它模式、DTD 定义下的用同样方法使用 STYLE 属性的元素)的
STYLE 属性的内容。我们期望,当元素支持内嵌 CSS 样式信息时,ElementCSSInlineStyle
接口的实例可以通过具体的强制转换方法由 Element 接口强制转换而来。
// DOM 级别2 中引入:
interface ElementCSSInlineStyle {
readonly attribute CSSStyleDeclaration style;
};
style 类型 CSSStyleDeclaration,
readonly本节中定义的接口不是强制性的。一个 DOM 应用程序可以使用接口 DOMImplementation 中的方法 hasFeature(feature,version)(参数依次为
"CSS2" 和 "2.0")来确定一个 DOM 实现是否支持本模块。一个实现要想能够完全支持本模块,它也必须同时支持 CSS 基本接口中的 "CSS" 特性。另请参阅 DOM 级别2 核心规范[DOM 级别2 核心]中的一致性信息。
CSS2Properties 接口方便地提供了在一个 CSSStyleDeclaration 中读取和设置属性的机制。本接口中的所有属性都是
CSS2 中定义的属性。通过本接口获取一个属性与通过调用 CSSStyleDeclaration 接口中的方法 getPropertyValue 去获取一个属性是等效的。通过本接口设置一个属性与通过调用 CSSStyleDeclaration 接口中的方法 setProperty 去设置一个属性是等效的。
CSS 模块的一致实现(conformant implementation)并不需要实现
CSS2Properties 接口。如果一个实现的确实现了本接口,期待的做法是,
CSS2Properties 接口的实例可以通过与语言相关的强制转换方法由 CSSStyleDeclaration 的实例转换而来。
如果一个 CSS 实现支持本接口,它就应该理解略写(shorthand)属性的具体语法,并能正确运用其语义。比如,当属性
margin 被设置的时候,该实现事实上要同时设置 marginTop、marginRight、 marginBottom
和 marginLeft 属性。
当处理 CSS "略写"(shorthand)属性的时候,该略写属性应当被分解为多个正常的非略写子属性,查询略写属性值的时候,返回的应当是与规则集合中的定义完全等价而长度又最短的形式。可是,如果不存在一个这样略写属性,当它加入到规则集合中后不改变该规则集合中已定义的非略写属性(也就是说,加入这个略写属性等价于加入一些规则集合中没有定义的非略写属性),那么查询略写属性的结果应当是空字符串。
举个例子,如果答案 "14pt Arial, sans-serif" 已经足够,那么查询 font 属性的结果就不应该是
"normal normal normal 14pt/normal Arial, sans-serif"。(那些 "normal" 是属性的初始值,即隐含值)。
如果组成一个略写字符串的所有的非略写属性的值都是初始值,那么应该返回一个包含所有初始值定义的字符串(比如对
border-width而言,应当返回 "medium" 而不是 "")。
一些属性定义了四个边的值,其中某些边未定义时可以从其它的边取值,比如
margin, padding,和 border-[width|style|color] 属性。
这时应当返回最少的边数。举个例子,应该返回 "0px 10px" 而不是 "0px 10px 0px 10px"。
如果一个略写属性不能被分解为非略写属性(比如当 font
属性的值为 "menu" 的时候),查询这些正常的非略写属性的结果应该是空字符串。
// DOM 级别2 中引入:
interface CSS2Properties {
attribute DOMString azimuth;
// 赋值时抛出 DOMException
attribute DOMString background;
// 赋值时抛出 DOMException
attribute DOMString backgroundAttachment;
// 赋值时抛出 DOMException
attribute DOMString backgroundColor;
// 赋值时抛出 DOMException
attribute DOMString backgroundImage;
// 赋值时抛出 DOMException
attribute DOMString backgroundPosition;
// 赋值时抛出 DOMException
attribute DOMString backgroundRepeat;
// 赋值时抛出 DOMException
attribute DOMString border;
// 赋值时抛出 DOMException
attribute DOMString borderCollapse;
// 赋值时抛出 DOMException
attribute DOMString borderColor;
// 赋值时抛出 DOMException
attribute DOMString borderSpacing;
// 赋值时抛出 DOMException
attribute DOMString borderStyle;
// 赋值时抛出 DOMException
attribute DOMString borderTop;
// 赋值时抛出 DOMException
attribute DOMString borderRight;
// 赋值时抛出 DOMException
attribute DOMString borderBottom;
// 赋值时抛出 DOMException
attribute DOMString borderLeft;
// 赋值时抛出 DOMException
attribute DOMString borderTopColor;
// 赋值时抛出 DOMException
attribute DOMString borderRightColor;
// 赋值时抛出 DOMException
attribute DOMString borderBottomColor;
// 赋值时抛出 DOMException
attribute DOMString borderLeftColor;
// 赋值时抛出 DOMException
attribute DOMString borderTopStyle;
// 赋值时抛出 DOMException
attribute DOMString borderRightStyle;
// 赋值时抛出 DOMException
attribute DOMString borderBottomStyle;
// 赋值时抛出 DOMException
attribute DOMString borderLeftStyle;
// 赋值时抛出 DOMException
attribute DOMString borderTopWidth;
// 赋值时抛出 DOMException
attribute DOMString borderRightWidth;
// 赋值时抛出 DOMException
attribute DOMString borderBottomWidth;
// 赋值时抛出 DOMException
attribute DOMString borderLeftWidth;
// 赋值时抛出 DOMException
attribute DOMString borderWidth;
// 赋值时抛出 DOMException
attribute DOMString bottom;
// 赋值时抛出 DOMException
attribute DOMString captionSide;
// 赋值时抛出 DOMException
attribute DOMString clear;
// 赋值时抛出 DOMException
attribute DOMString clip;
// 赋值时抛出 DOMException
attribute DOMString color;
// 赋值时抛出 DOMException
attribute DOMString content;
// 赋值时抛出 DOMException
attribute DOMString counterIncrement;
// 赋值时抛出 DOMException
attribute DOMString counterReset;
// 赋值时抛出 DOMException
attribute DOMString cue;
// 赋值时抛出 DOMException
attribute DOMString cueAfter;
// 赋值时抛出 DOMException
attribute DOMString cueBefore;
// 赋值时抛出 DOMException
attribute DOMString cursor;
// 赋值时抛出 DOMException
attribute DOMString direction;
// 赋值时抛出 DOMException
attribute DOMString display;
// 赋值时抛出 DOMException
attribute DOMString elevation;
// 赋值时抛出 DOMException
attribute DOMString emptyCells;
// 赋值时抛出 DOMException
attribute DOMString cssFloat;
// 赋值时抛出 DOMException
attribute DOMString font;
// 赋值时抛出 DOMException
attribute DOMString fontFamily;
// 赋值时抛出 DOMException
attribute DOMString fontSize;
// 赋值时抛出 DOMException
attribute DOMString fontSizeAdjust;
// 赋值时抛出 DOMException
attribute DOMString fontStretch;
// 赋值时抛出 DOMException
attribute DOMString fontStyle;
// 赋值时抛出 DOMException
attribute DOMString fontVariant;
// 赋值时抛出 DOMException
attribute DOMString fontWeight;
// 赋值时抛出 DOMException
attribute DOMString height;
// 赋值时抛出 DOMException
attribute DOMString left;
// 赋值时抛出 DOMException
attribute DOMString letterSpacing;
// 赋值时抛出 DOMException
attribute DOMString lineHeight;
// 赋值时抛出 DOMException
attribute DOMString listStyle;
// 赋值时抛出 DOMException
attribute DOMString listStyleImage;
// 赋值时抛出 DOMException
attribute DOMString listStylePosition;
// 赋值时抛出 DOMException
attribute DOMString listStyleType;
// 赋值时抛出 DOMException
attribute DOMString margin;
// 赋值时抛出 DOMException
attribute DOMString marginTop;
// 赋值时抛出 DOMException
attribute DOMString marginRight;
// 赋值时抛出 DOMException
attribute DOMString marginBottom;
// 赋值时抛出 DOMException
attribute DOMString marginLeft;
// 赋值时抛出 DOMException
attribute DOMString markerOffset;
// 赋值时抛出 DOMException
attribute DOMString marks;
// 赋值时抛出 DOMException
attribute DOMString maxHeight;
// 赋值时抛出 DOMException
attribute DOMString maxWidth;
// 赋值时抛出 DOMException
attribute DOMString minHeight;
// 赋值时抛出 DOMException
attribute DOMString minWidth;
// 赋值时抛出 DOMException
attribute DOMString orphans;
// 赋值时抛出 DOMException
attribute DOMString outline;
// 赋值时抛出 DOMException
attribute DOMString outlineColor;
// 赋值时抛出 DOMException
attribute DOMString outlineStyle;
// 赋值时抛出 DOMException
attribute DOMString outlineWidth;
// 赋值时抛出 DOMException
attribute DOMString overflow;
// 赋值时抛出 DOMException
attribute DOMString padding;
// 赋值时抛出 DOMException
attribute DOMString paddingTop;
// 赋值时抛出 DOMException
attribute DOMString paddingRight;
// 赋值时抛出 DOMException
attribute DOMString paddingBottom;
// 赋值时抛出 DOMException
attribute DOMString paddingLeft;
// 赋值时抛出 DOMException
attribute DOMString page;
// 赋值时抛出 DOMException
attribute DOMString pageBreakAfter;
// 赋值时抛出 DOMException
attribute DOMString pageBreakBefore;
// 赋值时抛出 DOMException
attribute DOMString pageBreakInside;
// 赋值时抛出 DOMException
attribute DOMString pause;
// 赋值时抛出 DOMException
attribute DOMString pauseAfter;
// 赋值时抛出 DOMException
attribute DOMString pauseBefore;
// 赋值时抛出 DOMException
attribute DOMString pitch;
// 赋值时抛出 DOMException
attribute DOMString pitchRange;
// 赋值时抛出 DOMException
attribute DOMString playDuring;
// 赋值时抛出 DOMException
attribute DOMString position;
// 赋值时抛出 DOMException
attribute DOMString quotes;
// 赋值时抛出 DOMException
attribute DOMString richness;
// 赋值时抛出 DOMException
attribute DOMString right;
// 赋值时抛出 DOMException
attribute DOMString size;
// 赋值时抛出 DOMException
attribute DOMString speak;
// 赋值时抛出 DOMException
attribute DOMString speakHeader;
// 赋值时抛出 DOMException
attribute DOMString speakNumeral;
// 赋值时抛出 DOMException
attribute DOMString speakPunctuation;
// 赋值时抛出 DOMException
attribute DOMString speechRate;
// 赋值时抛出 DOMException
attribute DOMString stress;
// 赋值时抛出 DOMException
attribute DOMString tableLayout;
// 赋值时抛出 DOMException
attribute DOMString textAlign;
// 赋值时抛出 DOMException
attribute DOMString textDecoration;
// 赋值时抛出 DOMException
attribute DOMString textIndent;
// 赋值时抛出 DOMException
attribute DOMString textShadow;
// 赋值时抛出 DOMException
attribute DOMString textTransform;
// 赋值时抛出 DOMException
attribute DOMString top;
// 赋值时抛出 DOMException
attribute DOMString unicodeBidi;
// 赋值时抛出 DOMException
attribute DOMString verticalAlign;
// 赋值时抛出 DOMException
attribute DOMString visibility;
// 赋值时抛出 DOMException
attribute DOMString voiceFamily;
// 赋值时抛出 DOMException
attribute DOMString volume;
// 赋值时抛出 DOMException
attribute DOMString whiteSpace;
// 赋值时抛出 DOMException
attribute DOMString widows;
// 赋值时抛出 DOMException
attribute DOMString width;
// 赋值时抛出 DOMException
attribute DOMString wordSpacing;
// 赋值时抛出 DOMException
attribute DOMString zIndex;
// 赋值时抛出 DOMException
};
azimuth 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
background of type
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
backgroundAttachment
of type DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
backgroundColor
of type DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
backgroundImage
of type DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
backgroundPosition
of type DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
backgroundRepeat
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
border 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderBottom of
type DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderBottomColor
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderBottomStyle
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderBottomWidth
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderCollapse
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderColor of
type DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderLeft 类型
DOMString|
|
SYNTAX_ERR: Raised if the new value has a syntax error and is unparsable. NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly. |
borderLeftColor
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderLeftStyle
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderLeftWidth
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderRight of
type DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderRightColor
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderRightStyle
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderRightWidth
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderSpacing 类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderStyle 类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderTop 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderTopColor
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderTopStyle
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderTopWidth
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
borderWidth of
type DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
bottom 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
captionSide 类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
clear 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
clip 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
color 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
content 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
counterIncrement
类型 DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
counterReset of
type DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
cssFloat 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
cue 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
cueAfter 类型
DOMString|
|
SYNTAX_ERR: 若新值有语法错误而不可分析。 NO_MODIFICATION_ALLOWED_ERR: 如果该属性是只读的。 |
cueBefore 类型
DOMString