zoukankan      html  css  js  c++  java
  • CSS 选择器的优先级

    优先级的顺序:行内样式>id选择器>类选择器>标签选择器>*通配符选择器>继承

    [html] view plain copy
    <!DOCTYPE html>  
    <html>  
    <head lang="en">  
        <meta charset="UTF-8">  
        <title></title>  
        <style>  
            * { /*通配符选择器*/  
                color: pink;  
            }  
            body {  /*继承*/  
                color: green;  
            }  
            div {   /*标签选择器*/  
                color: blue;  
            }  
            .d1 {   /*类选择器*/  
                color: yellow;  
            }  
            #d2 {   /*id选择器*/  
                color: purple;  
            }  
        </style>  
    </head>  
    <body>  
        <!--行类样式-->  
       <div style="color: red " class="d1" id="d2">优先级</div>  
    </body>  
    </html>  
    [html] view plain copy
    <span style="font-family:Microsoft YaHei;font-size:12px;">       但是优先级有个变数就是important,它可以改变选择器的优先级,如果在某个样式后面添加了important后,该选择器的优先级就会最高,例如:还是如上代码,给类选择器添加important后,字体颜色就会变成黄色。</span>  
    

      

    [html] view plain copy
    <pre class="html" name="code">.d1 {   /*类选择器*/  
        color: yellow !important;  

    接下来讲优先级的权重

    权重算法:(0, 0, 0, 0)

    第一个0对应着important的个数,

    第二个0对应着id选择器的个数

    第三个0对应着类选择器的个数

    第四个0对应着标签选择器的个数

    比较方法:先从第一个0开始比较,如果第一个0大,那么说明这个选择器的权重高,如果第一个相同,则比较第二个,依此类推。

    [html] view plain copy
    <!DOCTYPE html>  
    <html>  
    <head lang="en">  
        <meta charset="UTF-8">  
        <title></title>  
        <style>  
            div div { /*(0, 0, 0, 2)*/  
                color: red;  
            }  
            div .son { /*(0, 0, 1, 1)*/  
                color: blue;  
            }  
            div #son {/*(0, 1, 0, 1)*/  
                color: pink;  
            }  
            .father div {/*(0, 0, 1, 1)*/  
                color: yellow;  
            }  
            .father .son {/*(0, 0, 2, 0)*/  
                color: green;  
            }  
            .father #son {/*(0, 1, 1, 0)*/  
                color: purple;  
            }  
            #father div {/*(0, 1, 0, 1)*/  
                color: gray;  
            }  
        </style>  
    </head>  
    <body>  
    <div class="father" id="father">  
        <div class="son" id="son">权重</div>  
    </div>  
    </body>  
    </html>  
    

      通过权重的算法我们可以很快的得知最后字体的颜色为紫色

    如果给下面的样式添加了!important,则权重变成最高,字体颜色将为绿色

    [html] view plain copy
    .father .son {/*(1, 0, 2, 0)*/  
        color: green !important;  
    }  
    

      

    最后说一下选择器的工作原理

    选择器在查找元素的时候不是从左往右找,而是从右往左找

    [html] view plain copy
    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
    /*从左往右找*/
    div div { /*先找到一个子元素标签为div,然后再找这个元素是否有一个父元素标签也为div*/
    color: red;
    }
    div {
    color: blue;
    }
    </style>
    </head>
    <body>
    <div>
    文字
    <div>

      <div>  

           文字  

    <div>文字</div>  

    </div>  

    </div>  

    </body>  

    </html>  

    结果显而易见是:蓝,红,红

  • 相关阅读:
    百度笔试题:找最小的不重复数
    [置顶] 【收藏】实用软件
    指针数组与数组指针
    根据新浪天气API获取各地天气状况(Java实现)
    项目经历——EasyUI的检索和更新操作
    利用MyEclipse配置S2SH三大框架篇-Spring配置
    Intellij IDEA 最头大的问题,如何自定义注释模板?
    Spring Cloud Gateway VS Zuul 比较,怎么选择?
    Spring Boot 注册 Servlet 的三种方法,真是太有用了!
    Spring Cloud Eureka 常用配置详解,建议收藏!
  • 原文地址:https://www.cnblogs.com/potato-lee/p/6102070.html
Copyright © 2011-2022 走看看