• 选择器的权重


    选择器的权重

    权重就是我同个元素,有多个选择器的情况下,我该选择哪一个选择器的样式。

    <!doctype html>
    <html>
        <head>
            <title></title>
            <meta charset="utf-8" />
            <style type="text/css">
            	#p{
            		background: red;
            	}
            	.p{
            		background: skyblue;
            	}
            	p{
            		background: green;
            	}
            	
            </style>
        </head>
        <body>
        	<p style="background: pink" id="p">行内的样式</p>
        	<p  class="p" id="p">id的样式</p>
        	<p  class="p">class的样式</p>
        	<p>p标签的样式 </p>
        </body>
    </html>
    

    通过上面的比较,可以得出,行内样式>id选择器>类选择器>标签选择器>通配符

    那么有没有可能让标签选择大于所有的选择器呢,答案是有的,只要加上这行代码!important,任何选择器的权重就是无限大了。

    <!doctype html>
    <html>
        <head>
            <title></title>
            <meta charset="utf-8" />
            <style type="text/css">
            	#p{
            		background: red;
            	}
            	.p{
            		background: skyblue;
            	}
            	p{
            		background: green !important;
            	}
            	*{
            		background: brown 
            	}
            </style>
        </head>
        <body>
        	<p style="background: pink" id="p">行内的样式</p>
        	<p  class="p" id="p">id的样式</p>
        	<p  class="p">class的样式</p>
        	<p>p标签的样式 </p>
        </body>
    </html>
    

    选择器的类型

    ID选择器 #id

    类选择器 .class

    标签选择器 p,div等

    属性选择器 [type="text"]

    通用选择器 *

    伪类选择器 :hover

    伪元素选择器 ::before

    子选择器、相邻选择器

    选择器的权重

    第一等:行内样式是 1000,行内样式虽然没被列入选择器里,但它的权重是最高的

    第二等:id选择器是 100

    第三等:类选择器、伪类选择。属性选择器、属性选择器 10

    第四等:标签选择器和伪元素选择器 1

    其他选择器的权重为0

    继承的样式没有权重

    如果等级相同,那么最后的样式会覆盖前面的样式

    最后请记住!important 的权重是无限大的

    权重的计算

    将选择器的权重加起来

    <!doctype html>
    <html>
        <head>
            <title></title>
            <meta charset="utf-8" />
            <style type="text/css">
            	body input{
            		color: blue;
            	}
            	input{
            		color: red;
            	}
            </style>
        </head>
        <body>
        	<input type="text" name="" value="ssss">
        </body>
    </html>
    

    最终的样式是文字为蓝色

    因为body input 的权重是2,body,input每个的权重是1,所以加起来就2

    #id .input input{
        color: yellow;
    }
    

    上面的权重就是 100 + 10 +1 = 111

  • 相关阅读:
    Linux与Windows命令的比较
    操作系统的启动过程
    Spyder快捷键
    pytoch的最佳打开方式
    操作系统逻辑结构
    插值法
    bzoj3509[CodeChef]COUNTARI
    bzoj2969 矩形粉刷
    hdu5575 Discover Water Tank
    bzoj3473字符串&bzoj3277串
  • 原文地址:https://www.cnblogs.com/tourey-fatty/p/12060576.html
Copyright © 2020-2023  润新知