DOM 级别2 样式表接口是用来表示任何类型样式表的一组基接口。我们预计,一个表示特定样式表语言的 DOM 模块会包含一些继承本组接口的子接口。
本章节中所定义的接口都不是强制性的。一个 DOM 应用程序可以使用接口
DOMImplementation 中的方法 hasFeature(feature,version)(参数依次为 "StyleSheets" 和 "2.0")来确定一个 DOM 实现是否支持本模块。一个实现要想能够完全支持本模块,它也必须同时支持
DOM 2 核心规范 [DOM 级别2 核心]中定义的 "核心" 特性。另请参阅
DOM 级别2 核心规范[DOM 级别
2 核心]中一致性的信息。
本组接口展现了一般的样式表定义。
StyleSheet 接口是任何类型样式表的抽象基接口。它表示与一个结构化文档相关联的单个样式表。在
HTML 中,StyleSheet 接口既可以表示一个外部的样式表(通过 HTML LINK 元素来定义),也可以表示一个内嵌的 STYLE
元素。在 XML 中,本接口表示一个外部样式表(通过样式表处理指令来定义)。
// DOM 级别2 中引入:
interface StyleSheet {
readonly attribute DOMString type;
attribute boolean disabled;
readonly attribute Node ownerNode;
readonly attribute StyleSheet parentStyleSheet;
readonly attribute DOMString href;
readonly attribute DOMString title;
readonly attribute MediaList media;
};
disabled 类型 boolean
false 如果样式表应用到文档; true 如果没有。修改这个属性的值可能会导致文档中的样式被重新分析。只有当定义了合适的媒体,并且属性
disabled 的值是 false 的时候,一个样式表才是被应用的。因而,如果一个媒体没有应用到当前的用户代理,disabled 属性就被忽略。
href 类型 DOMString, 只读
null。参见 HTML 4.0 中 LINK 元素 href 属性的定义
,以及XML
样式表处理指令中的 href 伪指令。
media 类型
MediaList, 只读
ownerNode 中定义。如果没有定义媒体,MediaList 就为空。参见 HTML 4.0
LINK元素 media 属性的定义,以及
XML
样式表处理指令中的 media 伪属性。修改媒体列表可能会引起属性 disabled 值的改变。
ownerNode 类型 Node, 只读
LINK 或者 STYLE 元素。对于
XML,它可能是链接处理指令。对于包含在其他样式表中的样式表,本属性的值为 null。
parentStyleSheet 类型
StyleSheet, 只读
null。
title 类型 DOMString, 只读
ownerNode 中定义。参见 HTML 4.0 LINK 元素的 title 属性的定义,以及 XML 样式表处理指令中的 title 伪指令。
type 类型 DOMString , 只读
ownerNode 中定义。
参见 HTML 4.0 LINK 元素
type 属性的定义,以及 XML
样式表处理指令的 type 伪属性.StyleSheetList 接口抽象了有序的样式表集合。
可以用从0开始的整数索引来存取 StyleSheetList 中的项目。
// DOM 级别2 中引入:
interface StyleSheetList {
readonly attribute unsigned long length;
StyleSheet item(in unsigned long index);
};
length 类型 unsigned long, 只读
StyleSheets
的个数。有效的子样式表的索引范围是从 0 到 length-1,包括 0 和 length-1。
item
null。
index 类型 unsigned long
|
|
MediaList 接口抽象了有序的媒体集合。它并没有定义和限制怎样去实现这个集合。空列表等同于包含媒体 "all" 的列表。
可以用从0开始的整数索引来存取 MediaList 的项目
// DOM 级别2 中引入:
interface MediaList {
attribute DOMString mediaText;
// raises(DOMException) on setting
readonly attribute unsigned long length;
DOMString item(in unsigned long index);
void deleteMedium(in DOMString oldMedium)
raises(DOMException);
void appendMedium(in DOMString newMedium)
raises(DOMException);
};
appendMedium
newMedium。如果列表中已经存在 newMedium,那么先删除存在的这一项。
newMedium 类型 DOMString
|
|
INVALID_CHARACTER_ERR: 若媒体中含有其样式表语言不支持的非法字符。 NO_MODIFICATION_ALLOWED_ERR: 若本列表为只读。 |
deleteMedium
oldMedium。
oldMedium 类型 DOMString
|
|
NO_MODIFICATION_ALLOWED_ERR: 若列表为只读。 NOT_FOUND_ERR: 若列表中不存在 |
item
index 个项目。若 index
大于等于列表中的媒体个数则返回 null。
index 类型 unsigned long
|
|
在列表 |
LinkStyle 接口提供了从链接样式表的节点读取样式表的机制。
LinkStyle 的实例可以通过具体的强制转换方法由链接节点(DOM 2
中的 HTMLLinkElement、HTMLStyleElement、ProcessingInstruction)的实例转换而来。
// DOM 级别2 中引入:
interface LinkStyle {
readonly attribute StyleSheet sheet;
};
sheet 类型
StyleSheet , 只读
DocumentStyle 接口提供了一种读取文档中内嵌样式表的机制。我们期望
DocumentStyle 的实例可以通过具体强制类型转换方法由
Document 接口的实例转换而来。
// DOM 级别2 中引入:
interface DocumentStyle {
readonly attribute StyleSheetList styleSheets;
};
styleSheets 类型
StyleSheetList, 只读
HTMLLinkElement 接口,以及
[HTML4.0])。当该元素被插入该文档中,并且其属性 href 和 type 均指明所链接的对象是一个样式表之后,相对应的样式表就生成了。
HTMLStyleElement 接口,以及 [HTML4.0])。当该元素被插入该文档中,并且其 type 属性指明该元素与用户代理使用的样式表语言相一致之后,相对应的样式表就生成了。