## 回顾什么是外联样式
所谓外联样式,就是在 HTML 页面中内嵌样式表或者引入外部样式文件,再通过 CSS 选择器定位 HTML 页面元素,为其定义样式。
以下示例代码,就是定义外联样式表:
```html
<link rel="stylesheet" href="css/style.css">
```
上述示例代码,通过 `<link>` 元素引入外部的样式表。
```html
<style>
.button {
background-color: orange;
}
</style>
```
上述示例代码,通过 `<style>` 元素定义内嵌样式表。
## Document 对象的 styleSheets 属性
Document 对象提供了 styleSheets 属性,该属性返回包含所有外联样式表(内嵌样式表和外联样式表)的集合对象。
```javascript
var styleSheetList = document.styleSheets;
```
上述语法结构中,作为返回值的 styleSheetList 是一个由 styleSheet 对象组成的列表,每个 styleSheet 对象表示 HTML 页面中内嵌样式表或外联样式表。
我们可以通过打印该属性值进行测试:
```javascript
console.log(document.styleSheets);
```
上述示例代码输出的结果如下:
![](img/06.png)
## StyleSheetList 对象
Document 对象的 styleSheets 属性返回的是一个 StyleSheetList 对象。该对象是一个类数组对象,可以通过 for 循环语句进行遍历,或者将其转换为数组。
> **值得注意的是:** StyleSheetList 对象本身不能使用数组方法进行操作。
我们可以通过以下示例代码,测试研究 StyleSheetList 对象:
```javascript
var styleSheetList = document.styleSheets;
for (var i=0; i<styleSheetList.length; i++){
console.log(styleSheetList[i]);
}
```
上述示例代码中,每次循环得到的是 StyleSheet 对象。
## CSSStyleSheet 对象
CSSStyleSheet 对象表示一个 CSS 样式表(内嵌样式表或外联样式表)。CSSStyleSheet 实现了更为通用的 StyleSheet,也从其父级 StyleSheet 继承了属性和方法。
我们可以通过打印该对象进行测试:
```javascript
console.log(document.styleSheets[0]);
```
上述示例代码输出的结果如下:
![](https://box.kancloud.cn/75f97512b22392f7d9c2a517f370a51e_1112x607.png)
## CSSRuleList 对象
CSSStyleSheet 对象的 cssRules 属性返回的是一个 CSSRuleList 对象。该对象是一个类数组对象,可以通过 for 循环语句进行遍历,或者将其转换为数组。
我们可以通过以下示例代码,测试研究 CSSRuleList 对象:
```javascript
var styleSheet = document.styleSheets[0];
var cssRuleList = styleSheet.cssRules;
for(var i=0; i<cssRuleList.length; i++){
var cssRule = cssRuleList[i];
console.log(cssRule);
}
```
上述示例代码中,每次循环得到是 CSSRule 对象。
## CSSRule 对象
CSSRule 对象表示一个 CSS 规则。一个 CSS 样式表包含了一组 CSS 规则。
CSSRule 对象的常见属性:
- style:返回 CSSStyleDeclaration 对象
- cssText:CSS 规则
- selectorText:选择器
我们可以通过以下示例代码,测试研究 CSSRule 对象:
```javascript
console.log(document.styleSheets[1].cssRules[0]);
```
上述示例代码输出的结果如下:
![](https://box.kancloud.cn/85b0186ca542113563aee696bd5b3b12_1285x475.png)
- 关于
- 第一章 DOM 是什么
- 第一节 DOM 介绍
- 第二节 DOM 树结构
- 第二章 Document 对象
- 第一节 Document 对象介绍
- 第二节 定位页面元素
- 第三节 创建页面元素
- 第三章 Node 对象
- 第一节 Node 对象介绍
- 第二节 判断节点类型
- 第三节 遍历节点
- 第四节 插入节点
- 第五节 删除节点
- 第六节 替换节点
- 第七节 复制节点
- 第八节 textContent 属性
- 第四章 Element 对象
- 第一节 Element 对象介绍
- 第二节 DOM 元素树
- 第三节 定位页面元素
- 第四节 遍历元素
- 第五节 属性操作
- 第六节 innerHTML 属性
- 第五章 样式操作
- 第一节 获取内联样式
- 第二节 获取外联样式表
- 第三节 获取 class 属性
- 第四节 获取当前有效样式
- 第五节 设置内联样式
- 第六节 设置 class 属性
- 第七节 Element 对象的样式属性
- 第六章 事件
- 第一节 什么是事件
- 第二节 注册事件
- 第三节 移除注册事件
- 第四节 Event 事件对象
- 第五节 获取目标元素
- 第六节 阻止默认行为
- 第七节 获取鼠标坐标
- 第八节 事件流
- 第九节 事件委托
- 第七章 表单操作
- 第一节 获取表单
- 第二节 表单操作
- 第三节 表单验证
- 第四节 表单提交
- 第八章 BOM
- 第一节 BOM 是什么
- 第二节 Window 对象
- 第三节 Navigator 对象
- 第四节 History 对象
- 第五节 Location 对象
- 第六节 定时器