css权重很多人都听过,也了解一些,但是很多人对具体的规则或者说再深如一些关于css权重的问题,可能会不那么清楚。日常开发中,或多或少都会遇到css规则不生效的问题,为了让我们能够减少调试css规则的时间,深刻理解css权重,就十分关键了。如果喜欢的话可以点波赞/关注,支持一下,希望大家看完本文可以有所收获。
个人博客了解一下:obkoro1.com
在同一个元素使用不同的方式,声明了相同的一条或多条css规则,浏览器会通过权重来判断哪一种方式的声明,与这个元素最为相关,从而在该元素上应用这个声明方式声明的所有css规则。
不推荐使用!important
,因为!important
根本没有结构与上下文可言,并且很多时候权重的问题,就是因为不知道在哪里定义了一个!important
而导致的。
虽然我们应该尽量避免使用!important,但你应该知道如何覆盖important,加点权重就可以实现,codepen的demo
//!important 优先级最高,但也会被权重高的important所覆盖
<button id="a" class="a">aaa</button>
#a{
background: blue !important; /* id的important覆盖class的important*/
}
.a{
background: red !important;
}
!important
覆盖无论多少个class组成的选择器,都没有一个ID选择器权重高。类似的,无论多少个元素组成的选择器,都没有一个class选择器权重高、无论多少个ID组成的选择器,都没有行内样式权重高。
codepen的demo;
在demo中使用了11个class组成一个选择器,最后还是一个ID选择器,设置的样式生效。
所以权重是在双方处于同一等级的情况下,才开始对比。
选择器可能会包含一个或者多个与权重相关的计算点,若经过权重值计算得到的权重值越大,则认为这个选择器的权重高。举一个简单的栗子:
.test #test{ } // id 100+class 10=110;
.test #test span{} // id 100+class 10+span 1=111;
.test #test .sonClass{} // id 100+class 10+class 10=120; //生效
demo
<div id="app">
<div class="test" id="test">
<span >啦啦啦</span>
</div>
</div>
#test span{
color:blue;
}
#app span{ // 生效 因为后面出现
color: red;
}
比如不同的style表,head头部等,来看下面的栗子:
#content h1 { // css样式表中
padding: 5px;
}
<style type="text/css">
#content h1 { // html头部 因为html头部离元素更近一点,所以生效
padding: 10px;
}
</style>
!important
;以上就是本文关于css权重的内容了,如有不对的地方欢迎指正!希望大家看完可以有所收获,喜欢的话,赶紧点波订阅关注/喜欢。
个人blog and 掘金个人主页,如需转载,请放上原文链接并署名。码字不易,感谢支持!本人写文章本着交流记录的心态,写的不好之处,不撕逼,但是欢迎指点。
如果喜欢本文的话,可以关注一下我的订阅号,漫漫技术路,期待未来共同学习成长。
以上2018.5.19
你应该知道的一些事情——CSS权重
深入CSS优先级
css优先级
本文分享自 OBKoro1前端进阶积累 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!