一、继承性
写CSS样式表时,子标签会继承父标签的某些样式,如文本颜色和字号。想要设置一个可继承的属性,只需将它应用于父元素即可。
继承性发生的前提是包含(嵌套关系)
★文字颜色可以继承
★文字大小可以继承
★字体可以继续
★字体粗细可以继承
★文字风格可以继承
★行高可以继承
h系列不能继承文字大小
a标签不能继承文字颜色
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>css继承性</title> <style> div{ color: #ffffff; font-size: 16px; text-decoration: underline; background: #ffc107; border-radius: 10px; padding: 5px; } </style> </head> <body> <div> <p>子元素</p> <ul> <li> <p>后代元素</p> </li> </ul> <a href="#">www.vipbic.com</a> <h1>我是羊先生</h1> </div> </body> </html>
二、层叠性
1、什么是层叠性?
CSS处理冲突的一种能力,这个我们称之为层叠性
2、什么情况出现层叠性?
只有在多个选择器中“同一个标签”,又设置了“相同的属性”的时候,就会发生层叠性
3、发生层叠性会怎么样?
当发生层叠性时,哪个选择器设置的属性起作用,是由优先级来确定
三、优先级
权重大的样式修饰,即使在权重小的前面先调用,也是只会显示大的权重样式
1、什么是优先级?
多个选择器可能会选择同一个元素,优先级高的先做,优先级低的后做,这个我们称之为优先级。
2、优先级判断方式有哪些?
是否是直接选中(间接选中就是指继承,如果是间接选中时,就近原则)
直接选中时是相同选择器(则谁写在后面就听谁的)
直接选中时不是同选择器(则就会按照选择器的优先级来层叠)
3、CSS选择器优先级
!important > 行内 > id > 类 > 标签 > 通配符 > 继承 > 浏览器默认
权重类型 | 权重值 | 解释 |
继承或者* 的贡献值 | 0 | 权重值最低,稍微有点背景的都能干掉他 |
每个元素(标签)贡献值 | 1 | 权重第二小 |
每个类,伪类贡献值为 | 10 | 类和伪类是同级别第三小的 |
每个ID贡献值为 | 100 | 级别正数排行第三 |
每个行内样式贡献值 | 1000 | 级别虽然高但不推荐使用 |
每个!important贡献值 | ∞ 无穷大 | 级别最高 |
!important
用于提升某个直接选中标签的选择器中的某个属性的优先级的, 可以将被指定的属性的优先级提升为最高
注意点:
1. !important只能用于直接选中, 不能用于间接选中
2. 通配符选择器选中的标签也是直接选中的
3. !important只能提升被指定的属性的优先级, 其它的属性的优先级不会被提升
4. !important必须写在属性值得分号前面
5. !important前面的感叹号不能省略
6. IE6及更早浏览器下,!important在同一条规则集内不生效
科普知识: 不同浏览器采用不同大小的空间来存储每一位上的权重值:如firefox和ie都是用的8位来存储class位的权重值,也就是2^8=256。当叠加26层class时权重为10*26=260,就会发生溢出,向id位进一,权重为大于一个单一的id选择器.此时26层class的样式会在forefox上发挥作用,覆盖住id选择器的样式效果