body{font-family: helvetica,arial,sans-serif;}
``
文档中的所有元素都会继承这个样式。
CSS中有很多属性可以继承,比如颜色、字体、字号等。也有很多CSS属性不能继承,因为继承这些属性没有意义,比如边框、外边距等。
# 层叠
层叠,就是层叠样式表中的层叠,是一种样式在文档层次中逐层叠加的过程,目的是让浏览器面对某个标签特定属性值的多个来源,确定最终使用哪个值。
## 样式来源
浏览器层叠各个来源样式的顺序:
- 浏览器默认样式表
- 用户样式表(比如某些视障用户,他们可以通过用户样式表,强制浏览器加载的所有网站都以更大的字号等显示内容)
- 作者链接样式表(按照它们链接到页面的先后顺序)
- 作者嵌入样式
- 作者行内样式
**浏览器会按照上述顺序依次检查每个来源的样式,并在有定义的情况下,更新对每个标签属性值的设定。整个更新过程结束后,再将每个标签以最终设定的样式显示出来。**
## 层叠规则
1. 层叠规则一:找到应用给每个元素和属性的所有声明。
浏览器在加载每个页面时,都会据此查到每一条CSS规则,标识出所有收到影响的HTML元素。
2. 层叠规则二:按照顺序和权重排序。
浏览器依次检查5个来源,并设定匹配的属性。如果匹配的属性在下一来源也有定义,则更新该属性的值。
3. 层叠规则三:按特指度排序。
4. 层叠规则四:顺序决定权重。
如果两条规则都影响某元素的同一个属性,而且它们的特指度也相同,则位置最靠下(或后声明)的规则胜出。
## 计算特指度
利用“I-C-E”公式计算:
1. 选择符中有一个ID,就在I的位置上加1;
2. 选择符中有一个类,就在C的位置上加1;
3. 选择符中有一个元素名,就在E的位置上加1;
4. 得到一个三位数。
例如:
选择符|特指度
------|------
p|1
p.largetext|11
p#largetext|101
body p#largetext|102
body p#largetext ul.mylist|113
body p#largetext ul.mylist li|114
注意:0-1-12的特指度仍然比0-2-0低。
# 规则声明
声明包括两部分:属性和值。
值包含三类:
- 文本值:例如bold、hidden等。
- 数字值:绝对值和相对值。
- 颜色值
- 颜色名:red、blue等。
- 十六进制颜色:#ff8800等。
- RGB颜色值:rgb(0,255,0)表示纯绿色。
- RGB百分比值:100%,0%,0%表示纯红色。
- HSL(色度,饱和度%,亮度%)