CSS的特性

目录

CSS的三大特性

1、层叠性

2、继承性

3、优先级

4、权重的叠加


CSS的三大特性

层叠性、继承性、优先级

1、层叠性

相同选择器给设置相同的样式,此时一个样式会覆盖(层叠)另一个 冲突的样式。

原则:就近原则(样式冲突) 不冲突就不层叠

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>CSS层叠性</title>
    <style>
       div {
           color: red;
           font-size: 12px;
       }
       div {
           color: pink;
       }
    </style>
</head>
<body>
    <div>长江后浪推前浪,前浪死在沙滩上</div>
</body>
</html>

2、继承性

子承父业

子标签会继承父标签的某些样式

(text-,font-,line-这些元素开头的可以继承,以及color属性)与文字相关

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>CSS继承性</title>
    <style>
        div {
            color: pink;
            font-size: 14px;
        }
    </style>
</head>
<body>
    <div>
        <p>龙生龙,凤生凤,老鼠生的孩子会打洞</p>
    </div>
</body>
</html>

 ·简化代码:

body{

        font:12px ‘黑体’}

行高可以跟单位也可以不跟

·

body{

        color:pink;

        font:12px/1.5 ‘Microsoft YaHei’;

}

div{

        font-size:14px;

}

子元素继承了父元素body的行高1.5

即对当前元素文字大小font-size的1.5倍

所以div的行高:21px

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>行高的继承</title>
    <style>
        body {
            color: pink;
            /* font: 12px/24px 'Microsoft YaHei'; */
            font: 12px/1.5 'Microsoft YaHei';
        }
        div {
            /* 子元素继承了父元素 body 的行高 1.5 */
            /* 这个1.5 就是当前元素文字大小 font-size 的1.5倍   所以当前div 的行高就是21像素 */
            font-size: 14px; 
        }
        p {
            /* 1.5 * 16 =  24 当前的行高 */
            font-size: 16px;
        }
        /* li 么有手动指定文字大小  则会继承父亲的 文字大小  body 12px 所以 li 的文字大小为 12px 
        
        当前li 的行高就是  12 * 1.5  =  18
        */
    </style>
</head>
<body>
    <div>粉红色的回忆</div>
    <p>粉红色的回忆</p>
    <ul>
        <li>我没有指定文字大小</li>
    </ul>
</body>
</html>

3、优先级

当同一个元素指定多个选择器

选择器同,则执行层叠性

选择器不同,则根据选择器权重执行

选择器选择器权重
继承或*0,0,0,0
元素选择器0,0,0,1
类选择器,伪类选择器0,0,1,0
ID选择器0,1,0,0
行内样式style=“”

1,0,0,0

!important无穷大

元素选择器:

div{color:pink;}  <div>ni<div>

类选择器:

.text{color:red;} <div class="text">你</div>

ID选择器

#demo{color:green;} <div id="demo">你</div>

行内样式stylle=“”

<div style="color:purple">你</div>

!important

div{color:pink!important;} <div>你<div>

注意

权重是由4组数字组成

简单记忆法:

01101001000无穷
通配符和继承标签类(伪类)id行内样式表!important

继承的权重是0,如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0。

例如:

p{color:pink;}   自己有专门的样式就不需要继承

body{color:red;}

<p>你<p>

4、权重的叠加

复合选择器会有权重叠加的问题

权重会叠加,但不会有进位

例如:

ul li {

        color:green;}  权重:0,0,0,1+0,0,0,1=0,0,0,2

li {

        color:red;} 权重:0,0,0,1最小

.nav li {

        color:pink;

}权重:0,0,1,0+0,0,0,1=0,0,1,1

<ul class="nav">

        <li>大</li>

        <li>尾</li>

</ul>

例如:

div ul li 0,0,0,3

.nav ul li 0,0,1,2

a:hover 0,0,1,1

.nav a 0,0,1,1

练习: 需求把第一个li改粉加粗

.nav li {

        color:red;

}

.nav.pink {

        color:pink;

        font-weight:700;

}

<ul class="nav">

<li class="pink">人生<li>

<li>家<li>

                

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值