关于css权重那些事情

css权重与计算

昨晚上老师讲css知识点,一直觉得这老师上课不好玩也没听他上课,然后他点名问我css啥啥啥样式怎么怎么样,我当时直接懵了

我上课没听课,当时还在看java书,况且您老人家啷个就突然间点我名,后来不是没回答上问题嘛,不好意思不听课了,结果老师有讲到css权重,直接一脸懵,当时想着回去自己在学习一下这个css权重,但是奈何游戏太香,打了两把游戏就瞌睡

罪过罪过,得出三条结论:

1、上课还是要好好听课,老师其实很优秀的啦

2、游戏很香,我觉得我再打下去肯定上青铜,实力杠杠的

3、学java的童鞋真的要秃头

(写这个主要让自己下次总结学习知识要点时候能想起我今天的忏悔)


 
 
言归正传还是看权重

多条样式定义规则对同一个元素进行样式设置的时候,这时候不能按照css选择器的优先级来判断,用权重
 
权重它规定了css定义样式的优先级次序;

而优先级顺序根据 css选择器的权重值的比较来确定的,权重值可以看这个表格和例子
 
 

知识点
标签选择器权重等级
继承或者*0,0,0,0
每个元素(标签选择器)0,0,0,1
每个类,伪类(class|伪类|属性选择器)0,0,1,0
每个ID0,1,0,0
每个行内样式style=""1,0,0,0
每个**!important**无穷大

 
这里的四个数(0,1)我们只是为了方便识辨权重等级在个位,十位,百位,千位才这样子写的,不要误解,所以在这里数位之间没有进制,级别之间不可超越(四个数单纯看作是个位,十位,百位,千位)

1、值从左到右,左边最大,一级大于一级

2、数位之间没有进制,比如 0,0,0,5 + 0,0,0,5 = 0,0,0,10而不是 0,0,1,0 所以不存在10个div能赶上一个类选择器

3、继承的权重是0

4、通用选择器(*),子选择器(>), 相邻同胞选择器(+)等选择器不在4等级之内,所以它们的权值都为 0,0,0,0
 
 
 

例子
<head>
    <style>

/*0,0,1,2
div p都是标签选择器,所以在个位上是2  因为.two是类,所以是1*/
       div.two p{
           color: purple;
          
       }

/*0,0,1,1*/
        .one p{
            color: green;
        }

/*0,0,0,2  div p都是标签选择器,有两个标签选择器,所以是2*/
        div p{
            color: red;
        }

/*0,1,0,0*/
        #four{
            color: yellow;
        }
    </style>

    </style>
</head>


<body>
    <div class="one">
        <div class="two">
            <p>two的内容</p>
        </div>
        <p>one的内容</p>
    </div>
</body>

 

这里所给出的例子当中其实还涉及到权重个数,这里虽然用了数学加法,但是比较时候跟这个加法无关(只是为了方便识辨这是属于哪一种css优先级中的第几种优先级才使用的,换句话说,低等级的选择器,个数再多也不会越等级超过高等级的选择器的优先级的

 
 
 

总结

css优先级规则:

1.css选择规则的权值不同时,权重值高的优先;权重值指下面①到⑦的先后顺序

①css属性!important

②内联样式

③ID选择器(#id)

④类选择器(.class) = 伪类选择器(:hover等) = 属性选择器[type等]

⑤元素选择器(p等) = 伪元素选择器(:after/:before/::selection等)

⑥通用选择器(*)

⑦继承

2.css选择规则的权值相同时,后定义的规则优先(可以理解为后者把前者覆盖住了)

3. css属性后面加 !important 时,无条件绝对优先

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值