CSS的三大特性——层叠性、继承性、优先级

CSS有三个非常重要的特性:层叠性、继承性、优先级

 层叠性

CSS3的层叠性是指当多个样式规则应用于同一元素时,此时一个样式就会覆盖另外一个冲突的样式,浏览器会按照特定的规则来决定哪个样式规则应该被优先应用。这种规则被称为“层叠顺序”。

层叠性的原则:

  1. 样式冲突,遵循的原则就是就近原则,哪个样式规则离结构比较近,就会执行哪个样式
  2. 样式不冲突,不会层叠

下面是一个示例代码:

<!DOCTYPE html>
<html>
<head>
  <style type="text/css">
    p {
      font-size: 20px;
    }
  </style>
  <style type="text/css">
    p {
      font-size: 30px;
    }
  </style>
</head>
<body>
  <p>Hello World!</p>
</body>
</html>
 

在这个例子中,有两个样式规则都应用于p元素,一个设置font-size为20px,另一个设置font-size为30px。根据CSS3的层叠顺序,最终应用的样式规则是第二个,因为它离p元素更近。

因此,这段代码的输出结果是一个字体大小为30px的段落。

继承性

CSS3的继承性是指某些属性的值会被子元素继承自父元素。这些属性包括字体、颜色、行高、文本方向、可见性、文本装饰、文本对齐等。而一些属性并不具有继承性,比如背景图片、边框、外边距、内边距等。

继承性可以减少代码量,使得CSS代码更简洁,同时也使得网页风格更加统一。

HTML代码:

<div id="parent">
  <p>这是父元素的文本</p>
  <p class="child">这是子元素的文本</p>
</div>
 

CSS代码:

#parent {
  font-size: 20px;
  color: red;
}

.child {
  font-weight: bold;
}
 

在上面的代码中,父元素的字体大小和文本颜色设置为20px和红色,而子元素的文本粗细设置为粗体。

因为字体大小和颜色具有继承性,所以子元素的文本大小和颜色都继承自父元素,变成了20px大小和红色。而字体粗细不具有继承性,所以子元素的文本仍然是粗体。

最终的效果是父元素的文本颜色为红色,字体大小为20px,而子元素的文本颜色也为红色,字体大小也为20px,但是字体粗细为粗体。

优先级

当给元素设置样式时,如果有多个选择器指定的是同一个元素,就会有优先级的产生。

注意区别层叠性和优先级:

  • 层叠性是指选择器相同,样式规则不一样
  • 优先级是当不同的选择器指定同一个元素时,样式规则是一样的

 常见的选择器及其权重如下表所示

常见选择器及其权重
选择器选择器权重
继承 或者 通配符(*)0,0,0,0
元素选择器0,0,0,1
类选择器,伪类选择器0,0,1,0
ID选择器0,1,0,0
行内样式 style=""1,0,0,0
!important无穷大

优先级注意点:

  1. 权重是有4组数字组成,但是不会有进位。
  2. 可以理解为类选择器永远大于元素选择器,id选择器永远大于类选择器,以此类推。
  3. 等级判断从左向右,如果某一位数值相同,则判断下一位数值。
  4. 可以简单记忆法:通配符和继承权重为0,标签选择器为1,类和伪类选择器为10,id选择器为100,行内样式表为1000,!important无穷大
  5. 继承的权重为0,如果该元素没有被选择器选中,不管父元素权重多高,子元素得到的权重都是0
权重叠加

当出现复合选择时 ,就会出现权重叠加,则需要计算权重

下面举几个例子:

  • div ul li ------> 0,0,0,3
  • .class ul li  ------> 0,0,1,2
  • a:hover  -------> 0,0,1,1
  • .class a  ------>  0,0,1,1

计算权重的时候 ,注意4组数字之间不能进位,比如你有10个元素选择器,加起来还是0,0,0,10而不是0,0,1,0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值