第 9 节 CSS 的三大特性

CSS 的三大特性

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

层叠性

相同选择器设置相同的样式,此时第一个样式就会被第二个样式覆盖(层叠)。(按照程序执行的顺序,后面的样式覆盖前面的)

继承性

子标签会继承父标签的某些样式,如文本颜色和字号。降低CSS样式的复杂性。
注: 子元素可以继承父类元素的样式(以 text-, font-, line- 这些元素开头的可以继承,以及 color 属性)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS继承性</title>
    <style>
        div {
            color: thistle;
            font-size: 14px;
        }
    </style>
</head>

<body>
    <div>
        <p>CSS继承性</p>
    </div>
</body>

</html>

行高的继承

body {
	font: 12px/1.5 Microsoft YaHei;
}

(1)行高可以有单位px,也可以无
(2)如果子元素没有设置行高,则会继承父元素的行高 (1.5)
(3)此时子元素的行高:当前子元素文字大小的 1.5 倍
(4)body 行高设置为 1.5 最大的优势是 里面子元素可以根据自身文字的大小自动调整行高。

优先级

当同一个元素指定多个选择器时,就会有优先级的产生。
(1)选择器相同,按程序运行的顺序执行
(2)选择器不同,根据 选择器权重 执行
选择器权重如下表所示,

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=x, initial-scale=1.0">
    <title>CSS优先级</title>
    <style>
        /* div 优先级第5 */
        div {
            color: tomato !important;
            /*!important 优先级最高第(1) */
        }

        /* 类选择器 第4 */
        .test {
            color: violet;
        }

        /* id 优先级第3 */
        #demo {
            color: yellowgreen;
        }
    </style>
</head>

<body>
    <!-- style="" 优先级第2 -->
    <div class="test" id="demo" style="color: blueviolet;">CSS优先级</div>
</body>

</html>


(1)权重是由 4 组数字构成,但不会有进位
(2)等级判断从左向右,如果某一位数值相同,则判断下一位数值。
(3)继承的权重是0,若子元素本身设定的样式,则按本身的样式修改;若子元素本身没有设定样式,则其样式跟从父类的。

权重叠加

如果是复合选择器,则会有权重叠加,需要计算权重。

  • div ul li ---------> 0,0,0,3
  • .nav ul li ---------> 0,0,1,2
  • a:hover --------> 0,0,1,1 (:hover 是伪类选择器)
  • .nav a ---------> 0,0,1,1
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>权重的叠加</title>
    <style>
        /* li 的权重 0,0,0,1 */
        li {
            color: dodgerblue;
        }

        /* ul li 的权重 0,0,0,1 + 0,0,0,1 = 0,0,0,2 */
        ul li {
            color: forestgreen;
        }

        /* .nav li 的权重 0,0,1,0 + 0,0,0,1 = 0,0,1,1 */
        .nav li {
            color: hotpink;
        }
    </style>
</head>

<body>
    <ul class="nav">
        <li>权重的叠加</li>
    </ul>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值