CSS学习总结系列4——结构和层叠
2008-06-24 08:51 Register 阅读(179) 评论(0) 收藏 举报- 特殊性
- 继承
- 层叠
层叠和继承
继承是(Inheritance)一个元素像其后代元素传递属性值所采用的机制,确定应当向一个元素应用那些规则时,用户代理(浏览器)不仅要考虑继承,还要考虑声明特殊性,另外需要考虑声明的来源。这个过程称为层叠(cascade)
特殊性
不同的方式选择了同一元素时,它们通过特殊性的比较来获得对元素应用规则的权利。其中,选择符的特殊性由选择器本身的组件确定。
- 选择器的特殊性
- 1. 对于选择符中给定的各个ID属性值,加100(0100)。
- 2. 类属性值、属性选择和伪类,加10(0010)。
- 3. 元素和伪元素(CSS2.1),加1(0001)。
- 4. 选择符分组和通配符无影响(加0000)。
- 内联样式特殊性
- CSS2.1规定内联样式特殊性为1000,高于所有选择符(在CSS2中和ID选择器的特殊性相同)。
- 重要声明:!imoprtant
- 重要声明是在声明结束的分号前加!important标识,重要声明和特殊性无关且总是胜出的。
继承
继承面向所有可以传递的后代(特别的,body元素的背景样式可以传递到html元素)且没有特殊性。
层叠
特殊性相等的规则对元素的应用。
- CSS2.1的层叠规则
- 1. 找出所有相关的规则。
- 2. 按照权重(高-低)对声明排序。
- 3. 按照特殊性(大-小)对声明排序。
- 4. 按照出现顺序(后-先)对声明排序(style属性认为出现在文档样式的最后)。
- 权重的顺序
- 1. 读者的重要声明。
- 2. 创作人员的重要声明。
- 3. 创作人员的正常声明。
- 4. 读者的正常声明
- 5. 用户代理声明。(浏览器缺省设置)。
层叠的顺序对链接伪类的影响
非CSS表现
非CSS表现,如font元素等的特殊性按照0处理,出现顺序认为是在创作人员样式的最前面。创作人员和读者样式都能将其覆盖,但用户代理不能。
浙公网安备 33010602011771号