css选择器的优先级

2018-11-25  本文已影响0人  Boy的复数形式

一、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.继承问题,无论父代权重多大,只要后代自己有和父代冲突的样式,则直接选择自己所有的样式

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

上一篇下一篇

猜你喜欢

热点阅读