zoukankan      html  css  js  c++  java
  • 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:"就近原则" : 谁描述的近,就显示谁的属性

  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/zhaoyunlong/p/9079231.html
Copyright © 2011-2022 走看看