继承和层叠

什么是继承

继承(inherit),是指子元素会自动拥有父元素的一些CSS属性
继承必须具有传递性
  • 有些属性在页面的某个区域中具有通用性

  • 若没有继承,则必须为该区域的每个元素指定样式,导致代码重复臃肿

  • 可被继承的属性:文本样式

  • 不能继承的属性:display属性

继承发生的场景

一个元素的某个CSS属性,只要满足下面两个条件,才会继承父元素:
  • 该样式是可继承的属性
  • 该属性在样式表中没有声明

强制继承,也叫显示继承,是指将css属性值设为inherit

这样做有两个原因

  • 为了继承有些不可以继承的属性
  • 为了继承已被声明过的属性
声明冲突:当相同的属性名不同属性值运用到同一个元素上就会发生声明冲突,浏览器会自动触发层叠机制

层叠概述

什么是层叠:

层叠是一种机制,用于解决声明冲突

层叠过程

1、比较优先级

2、比较特殊性

3、比较源次序

比较优先级:

一个声明块的优先级,与他的来源重要性有关

若属性后面加!important(重要性),则表示一条重要声明,否则为普通声明

    /* 重要声明 */
    color: blue !important;
    /* 普通声明 */
    color:black;

比较特殊性:

每一个声明都有一个特殊性(specificify)

一个声明的特殊性,取决于规则的是和范围的大小

范围大特殊性小,反之范围小特殊性大
行内样式>ID选择器>类选择器(伪类选择器)>元素选择器>通配符选择器

在比较特殊性时,每一个冲突的声明,会生成4个数字a,b,c,d以比较特殊性

a越大,特殊性越高,若a相同则比较b,b越大,特殊性越高

  • a:若声明是行内样式,则为1,否则为0
  • b:规则中ID选择器的个数
  • c:规则中类选择器的个数、伪类选择器和属性选择器的个数
  • d:规则中元素选择器、伪元素选择器的个数

比较源次序

若前两步都相同就比较先后顺序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值