相信大部分人刚开始写 css 的时候应该碰到过这样的问题。
明明只改了一行样式,然后整个页面就变成了这样↓

讯享网
摘自 css 优先级|MDN https://developer.mozilla.org/zh-CN/docs/Web/CSS/Specificity
优先级按从高到低依次为:
1.!important 例外规则。当在一个样式声明中使用一个 !important 规则时,此声明将覆盖任何其他声明
2.内联样式
3.ID 选择器
4.类选择器、属性选择器、伪类选择器

参考 W3C :
https://www.w3.org/TR/selectors/#specificity
在学习过程中,你可能发现给选择器加权值的说法,即 ID 选择器权值为 100,类选择器权值为 10,标签选择器权值为 1,当一个选择器由多个 ID 选择器、类选择器或标签选择器组成时,则将所有权值相加,然后再比较权值。
这种说法其实是有问题的。
比如一个由 11 个类选择器组成的选择器和一个由 1 个 ID 选择器组成的选择器指向同一个标签,按理说 110 > 100,应该应用前者的样式,然而事实是应用后者的样式。
错误的原因是:选择器的权值不能进位。还是拿刚刚的例子说明。11 个类选择器组成的选择器的总权值为 110,但因为 11 个均为类选择器,所以其实总权值最多不能超过 100, 你可以理解为 99.99,所以最终应用后者样式。
写完了,各位看官给个赞再走吧。
极客写文章,你们看极客 每天转载优质内容,你们来看我就好了!
我们的口号是:信极客,没bug!
更多极客视频教程,请点击阅读原文。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/157449.html