美文网首页
css选择器的优先级

css选择器的优先级

作者: Boy的复数形式 | 来源:发表于2018-11-25 13:22 被阅读0次

    一、css选择器的优先级和权重知识

    1.1各类选择器的介绍

    (1)标签选择器和通配符选择器(用*表示)

    标签有h1~h6 div a p img span 等,例如

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>类选择器</title>
            <style type="text/css">
                  * {
                               font-family:"微软雅黑"
                          }
                span{
                    font-size: 150px;
                }
            </style>
        </head>
        <body>
         <span class="g">G</span>
        </body>
    </html>
    
    
    

    (2)行内选择器

     <p style="color: red;">行内选择器</p>
    

    (3)类选择器(.定义,class调用)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>类选择器</title>
            <style type="text/css">
                .g{
                    color: skyblue;
             }
            </style>
        </head>
        <body>
         <span class="g">G</span>    
        </body>
    </html>
    
    

    (4)ID选择器(#定义,id调用)

    这类选择器用的少

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>类选择器</title>
            <style type="text/css">
                #g{
                    font-size: 150px;
                }
            </style>
        </head>
        <body>
         <span id="g">G</span>
        </body>
    </html>
    
    

    (5)后代选择器(用空格隔开)、子代选择器(用大于号表示)、并集选择器

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                ul li a{ /*后代选择器,所有后代 用空格表示*/
                    color: #FF0000;
                }
                ol li>a{ /*子代选择器,表示最邻近的的子代,亲儿子,用大于号表示*/
                    color: #0f0;
                }
                p,div,span{ /*并集选择器,用逗号隔开*/
                    color: #00f;
                }
            </style>
        </head>
        <body>
            <ul>
                <li>
                    <a href="">一级此单</a>
                    <div>
                        <a href="">二级菜单</a>
                        <a href="">二级菜单</a>
                        <a href="">二级菜单</a>
                    </div>
                </li>
             
            </ul>
            <br />
            <ol>
                <li>
                    <a href="">一级此单</a>
                    <div>
                        <a href="">二级菜单</a>
                        <a href="">二级菜单</a>
                        <a href="">二级菜单</a>
                    </div>
                </li>
             
            </ol>
    
        </body>
    </html>
    

    (6)链接伪类选择器(用于链接标签)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
         <style type="text/css">
            a:link{
                color:red;
                font-size:100px;
                text-decoration: none;
            }
            a:visited {
                color: pink;
            }
            a:hover {
                color: #00f;
            }
            a:active {
                color: green;
            }
            
            /*实际开发只用写两种*/
            h1 a{
                color:black;
                text-decoration: none;
            }
            h1 a:hover{
                color:orange;
            }
            
         </style>
        </head>
        <body>
            <a href="http://baidu.com">百度</a>
            
            
            <h1><a>实际开发</a></h1>
        </body>
    </html>
    
    

    (7)!important选择器(拥有最高权重)

    h1 a:hover{
                color:orange!important;
            }
    

    1.2选择器的权重和优先级排序(注意:下表说的都是单个的选择器权重,选择器的权重是可以叠加的)

    选择器 权重
    通配符选择器(*) 0000
    标签选择器(p、div等) 0001
    类选择器(.)和伪类(:) 0010
    id选择器(#) 0100
    行内选择器(style="color: red;") 1000
    !important ∞(无穷大)

    1、权重相同就近原则,对有冲突的样式进行覆盖,无冲突的样式显示
    2、权重会叠加

    1.3选择器的权重的叠加

    叠加的选择器 权重
    (1)div ul li 0003
    (2)a:hover 0011
    (3).class div 0101
    (3)>(2)>(1)

    注:1.权重的相加不进位
    2.继承问题,无论父代权重多大,只要后代自己有和父代冲突的样式,则直接选择自己所有的样式

    权重和优先级问题大概这么多,这主要是写给自己看的,所以如有不对的地方,希望各位大佬可以指出。

    相关文章

      网友评论

          本文标题:css选择器的优先级

          本文链接:https://www.haomeiwen.com/subject/mfcpqqtx.html