css的继承性和层叠性

css有两大特性:继承性和层叠性

继承性:

面向对象语言都会存在继承的概念,在面向对象语言中,继承的特点:继承了父类的属性和方法。那么我们现在主要研究css,css就是在设置属性的。不会牵扯到方法的层面。

继承:给父级设置一些属性,子级继承了父级的该属性,这就是我们的css中的继承。

记住:有一些属性是可以继承下来 : color 、 font-*、 text-*、line-* 。主要是文本级的标签元素。

但是像一些盒子元素属性,定位的元素(浮动,绝对定位,固定定位)不能继承

层叠性

层叠性: 权重的标签覆盖掉了权重小的标签,说白了 ,就是被干掉了
权重: 谁的权重大,浏览器就会显示谁的属性

谁的权重大? 非常简单就是小学的数数。

数:id的数量 class的数量 标签的数量,顺序不能乱

       优先级等级

行内样式 > ID选择器 > 类选择器 > 标签选择器

   标签选择器         优先级为1

      类选择器           优先级为10

      ID选择器           优先级为100

      行内样式            优先级为1000

大家记住这个这个层叠行就好理解了

 

层叠性: 权重的标签覆盖掉了权重小的标签,说白了 ,就是被干掉了
权重: 谁的权重大,浏览器就会显示谁的属性

谁的权重大? 非常简单就是小学的数数。

数:id的数量 class的数量 标签的数量,顺序不能乱

数:id的数量 class的数量 标签的数量,顺序不能乱

head>
<meta charset="UTF-8">
<title>层叠</title>
<style>
/*这个时候就是看你的id 和class的优先级了*/
/*1 0 0 */显示红色
#box{

color:red;
}
/*0 1 0*/
.container{
color:green;
}
/*0 0 1*/
p{
color:peru;
}
</style>
</head>
<body>
<p id="box" class="container">老王在哪里</p>

</body>

 

上面的效果就是显示红色的 因为id的权重大于class和标签选择器

 

 

eg:

#box{
    color: red;
}
.con{
    color: yellow;
}
p{
    color: peru;
}



<p id="box" class="con">老王在哪里</p>

 

显示效果就是id修饰的红色

 

 

 

 

是不是感觉明白了呢?好的,再给大家加深点难度。

<head>
    <meta charset="UTF-8">
    <title>层叠</title>
    <style>
        #box1 #box2{
            color:yellow;
        }
        box2 .wrap3 p{
            color:red;
        }
          div div #box3 p{
              /*这个是直接对id 中的p指定的颜色所以就是这个 */
            color:purple;
        }
        div .wrap1 div .wrap2 div .wrap3 p{
            color:blue;
        }
    </style>
</head>
<body>
<div id="box1" class="wrap1">
    <div id="box2" class="wrap2">
        <div id="box3" class="wrap3">
            <p>再来猜猜吾乃什么颜色</p>
        </div>
    </div>
</div>
</body>




第二种:
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>

        /*2 0 1*/
        #box1 #box2 p{
            color: red;
        }
        /*2 1 1*/
        #box1 #box2 .wrap3 p{
            color: yellow;
        }
        /*0 3 4*/
        div.wrap1 div.wrap2 div.wrap3 p{
            color: green;
        }
        
        /*3 0 1*/
        #box1 #box2 #box3 p{
            color: pink;
        }

    </style>
</head>
<body>
    
    <div id='box1' class="wrap1">
        <div id="box2" class="wrap2">
            <div id="box3" class="wrap3">
                <p>再来猜猜我是什么颜色?</p>
            </div>
        </div>
    </div>
</body>
层叠深入

 

我们还是要看权重的 就是看看哪个的权重更高:

权重一样的是可以付覆盖的,后来者居上

<head>
    <meta charset="UTF-8">
    <title>权重</title>
    <style>
        #box2 .wrap3 p{
            color:yellow;
        }
        /*当权重一样的时候后来者居上*/
        #box1 .wrap2 p{
            color:red;
        }
    </style>
</head>
<body>
<!-- 当权重一样的 后来者居上 -->
<div id="box1" class="wrap1">
    <div id="box2" class="wrap2">
        <div id="box3" class="wrap3">
            <p>再来看看我的颜色</p>
        </div>
    </div>
</div>
</body>
权重一样后来者居上

1.先看标签元素有没有被选中,如果选中了,就数数 (id,class,标签的数量) 谁的权重大 就显示谁的属性。权重一样大,后来者居上
2.如果没有被选中标签元素,权重为0。
如果属性都是被继承下来的 权重都是0 。权重都是0:"就近原则" : 谁描述的近,就显示谁的属性


3.继承来的,描述的一样近,数权重
4.继承来的,描述的一样近,权重一样,后来者居上

被继承来的是没有权重的 所以后来的可以覆盖继承来的

<head>
    <meta charset="UTF-8">
    <title>权重</title>
    <style>
        #box1 #box2 .wrap3{
            /*继承wrap3的颜色*/
            color:red;
        }
        #box1 .wrap3 p{
            color:green;

        }
    </style>
</head>
<body>
<!--如果属性都是被继承下来的 权重都是0 。权重都是0:"就近原则" : 谁描述的近,就显示谁的属性-->
<div id="box1" class="wrap1">
    <div id="box2" class="wrap2">
        <div id="box3" class="wrap3">
            <p>再来看看我</p>
        </div>
    </div>
</div>

</body>
继承的颜色

 

小总结一下:

总结:
1.先看标签元素有没有被选中,如果选中了,就数数 (id,class,标签的数量) 谁的权重大 就显示谁的属性。权重一样大,后来者居上
2.如果没有被选中标签元素,权重为0。
如果属性都是被继承下来的 权重都是0 。权重都是0:"就近原则" : 谁描述的近,就显示谁的属性

 

posted @ 2018-05-23 20:38  可爱的红领巾  阅读(235)  评论(0编辑  收藏  举报