07-css的继承性和层叠性

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

继承性

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

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

记住:有一些属性是能够继承下来 : colorfont-*text-*line-* 。主要是文本级的标签元素。ide

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

 

层叠性

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

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

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

/*1  0  0 */显示红色
#box{

color: red; } /*0 1 0*/ .container{ color: yellow; } /*0 0 1*/ p{ color: purple; }

 

是否是感受明白了呢?好的,再给你们加深点难度。htm

1     <div id='box1' class="wrap1">
2         <div id="box2" class="wrap2">
3             <div id="box3" class="wrap3">
4                 <p>再来猜猜我是什么颜色?</p>
5             </div>
6         </div>
7     </div>
View Code
        #box1 #box2 p{
            color: yellow;
        }
        
        #box2 .wrap3 p{
            color: red;
        }
        
        div div #box3 p{
            color: purple;
        }
        
        
        div.wrap1 div.wrap2 div.wrap3 p{
            color: blue;
        }
View Code

 

好的。那么上面的这个案例你们是否懂了呢?那么接下来咱们继续看案例对象

仍是上面那个html结构,若是我设置如下css,会显示什么颜色呢。blog

1         #box2 .wrap3 p{
2             color: yellow;
3         }
4         
5         #box1 .wrap2 p{
6             color: red;
7         }

 

答案是红色的。结论:当权重同样的时候 是之后来设置的属性为准,前提必须权重同样 。‘后来者居上 ’。继承

 

Good,咱们继续看下面的css,你来猜如下此时字什么颜色?

#box1 #box2 .wrap3{
    color: red;
}
        
#box2 .wrap3 p{
    color: green;
}

答案是绿色。哈哈,是否是感受快懵掉了。其实你们只要记住这点特性就能够。第一条css设置的属性值,是经过继承性设置成的红色,那么继承来的属性,它的权重为0。它没有资格跟咱们下面选中的标签对比。

那你们猜测一下若是都是被继承来的属性,那么字会显示什么颜色呢?

#box1 #box2 .wrap3{
    color: red;
}
.wrap1 #box2{
    color: green;
}
View Code

小案例证实:权重都是0:那么就是"就近原则" : 谁描述的近,就显示谁的属性。所谓描述的近,就是选中到最内层的距离越近。

 

小总结一下:

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

相关文章
相关标签/搜索