zoukankan      html  css  js  c++  java
  • CSS的继承性和层叠性

    继承性

    <body>
        <div>
            <p>我是段落</p>
            <p>我是段落</p>
            <p>我是段落</p>
        </div>
    </body>
    
    <style type="text/css">
            /* div p {
                color: red
            } */
    
            div {
                color: blue
            }
     </style>

    打开会发现p的字体也是蓝色的,浏览器的查看说是继承于div

    有一些属性,当给自己设置的时候,自己的后代也同时拥有了这个属性,这就是继承性

    但是并不是所有的属性都具有继承性

    只有以color,text,line,font开头的具有这些特性

    继承性从大贯穿到最小的元素

    所以,如果我们的页面是统一的文字 字号什么的,我们就可以利用继承性在body标签内统一书写

    层叠性

    层叠性,就是css处理冲突的能力

    <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>Document</title>
        <style type="text/css">
            p {
                color: red
            }
            .pp {
                color: blue
            }
            #para1 {
                color: blueviolet
            }
        </style>
    </head>
    <body>
        <p class="pp" id="para1">
            我是段落
        </p>
    </body>

    发现最后的颜色是紫色,术语上讲前两个设置被层叠掉了,就是被覆盖了.

    <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>Document</title>
        <style type="text/css"> 
            #box1 .hezi2 p{
                color: red
            }
            div div #box3 p {
                color: green
            } 
    
            div.hezi1 div.hezi2 div.hezi3 p {
                color: blue
            }
    
        </style>
    </head>
    <body>
        <div class="hezi1" id="box1">
            <div class="hezi2" id="box2">
                <div class="hezi3" id="box3">
                    <p>我是什么颜色</p>
                </div>
            </div>
        </div>
    </body>

    会发现这个颜色是红色的,这个要怎么分析呢?

    我们要分别数一下id选择器的数量 类选择器的数量,标签选择器的数量。

    id的数量 类的数量 标签的数量 权重一次降低,即优先级一次降低

    层叠性不进位

    <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>Document</title>
        <style type="text/css">
            div div div div div div {
                color: red
            }
            .haha {
                color: blue
            }
        </style>
    </head>
    <body>
        <!-- 层叠性不进位 -->
        <div>
            <div>
                <div>
                    <div>
                        <div>
                            <div>
                                <div>
                                    <div>
                                        <p class="haha">文字</p>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </body>
    </html>

    是蓝色的。优先级低的就算再多也不会影响优先级高的。实际上是能够影响的,256个标签才抵得上一个类标签,但是没有实战意义。

    如果权重一样,谁写在后面听谁的。

    权重注意点:当所有的选择器直接选择上标签时 才使用权重计算。继承性的属性权重为0

    important 关键字

    如果权重没有别人高,又想使自己起作用,可以使用important关键字 语法: k:v !important 代表这个权重是无限大。

    !important 需要注意的

    !important 提升的是一个属性 而不是一个选择器

    p {
          color: red !important;
          font-size: 60px;
    }

    就是只针对 color有用 对font-size没有用

    !important无法提升继承的权重,该是0还是0

    !important 不影响就近原则(如果都是在继承的情况下)如果离的一样近 还是会比权重,这种情况下这个属行

    平常情况下 !important 不会使用,因为会让CSS变得很乱,只是作为一个知识点。

  • 相关阅读:
    71_Go基础_1_38 结构体是指类型
    63_Go基础_1_30 递归
    69_Go基础_1_36 函数的值传递引用传递
    android中layout_gravity与gravity的区别
    andriod中的android:layout_weight的设置
    eclipse 使用在资源管理器中打开xx文件
    【整理】LISP简介
    【项目】优化算法设计(三):程序的改进的设想
    【转载】匈牙利表示法
    【项目】07年度科创项目“智能施工网络优化软件开发”结题书、源代码发布
  • 原文地址:https://www.cnblogs.com/huanying2000/p/11111573.html
Copyright © 2011-2022 走看看