CSS 特异性

背景:在我每次画界面的时候,总会出现样式冲突、样式污染、一级很多样式改不掉的问题。所以总结一文来彻底搞懂css样式的特异性,方便你我他。

什么是css特异性?

如果有多个属性或者选择器同时指向同一元素的CSS冲突 ,那么优先使用什么样式规则。那么便有了特异性的概念。

特异性(specificity)视为得分/等级,能够确定最终将哪些样式声明应用于元素。

简单来说:CSS特异性就是CSS样式选择器的权重计算。从而让哪些样式应用到元素上。

特异性层次

每一种选择器都有自己的权重,依次是
行内样式 > ID选择器 > 类、属性、伪类 > 元素、伪元素选择器
我们来个例子说明一下:
代码:

<body><div id="id1" class="class1" style="background: blue;">说明行内样式最强</div><div id="id2" class="class2">id排第二</div><div class="class3">类、属性、伪类</div><div>元素选择器最后</div>
</body><style>/* 元素选择器 */div{width: 100px;height: 100px;background-color: rgba(93, 171, 195, 0.931);display: inline-block;}/* id选择器 */#id1,#id2{background-color: red;}/* 类选择器 */.class1,.class2,.class3{background: orange;}
</style>

效果:

可以说明上面的选择器权重是不同的。

权重计算特异质

这么多选择器,那是不是我写一个行内样式其他样式就全部没用了呢?NONONO,这个时候我们就要来计算权重了。

我们以一个 0 0 0 0 四位数为样式的权重总和

从最低的元素、伪元素选择器 在个位+1 就是 0 0 0 1

类、属性、伪类 在十位数+1 就是 0 0 1 0

ID选择器 在百位数+1 就是 0 1 0 0

行内样式 在千位数+1 就是 1 0 0 0

比较每一个权重值的总和,大的样式优先。

例子:

<body><div id="main"><div class="content"><p class="name">浪漫主义码农</p><p class="hobby">爱好打篮球</p><p class="eat">是个吃货</p></p></div></div>
</body>
<style>/* 权重 0 0 0 1 */p{color: red;}/* 权重 0 0 1 0 */.name{color: blue;}/* 权重 0 0 2 1 */.content p:nth-child(1){color: chartreuse;}
</style>

效果:

计算就是这样计算的。但是如果有相同权重的,就按照定义的顺序优先的样式

补充

除了上述的选择器外,通用选择器* 权重为0 0 0 0 为最低

!important 表示 非必要不使用,是比行内样式更为重要,是权重最高的,无视其他。

例子:当我给最低的权重加一个!important

<body><div id="main"><div class="content"><p class="name" style="color: chartreuse;">浪漫主义码农</p><p class="hobby" style="color: chartreuse;">爱好打篮球</p><p class="eat" style="color: chartreuse;">是个吃货</p></p></div></div>
</body>
<style>/* 权重 0 0 0 2 */p:nth-child(1){color: red !important;}/* 权重 0 0 1 0 */.name{color: blue;}
</style>

效果:

写在最后

如果有误,欢迎大佬们评论指出。

CSS 特异性看这篇就行了相关推荐

  1. 学习软件测试需要掌握哪些知识点呢(看这篇就行了)

    我24岁才正式投身进入软件测试行业:没有进行过专业的技能培训,都是一边工作一边学习,成长效率太低. 经过自己这几个月的工作,总结了一些软件测试的学习路线,能避免一些弯路算是帮到大家的. 一.对于软件测 ...

  2. Java后端新人入职第一天,环境搭建,全看这篇就行了

    本文主要是记录一下一个新人java后端开发来到一个新公司,如何快速将自己的相关开发环境搭建好,包括Java.Maven.Tomcat.idea.Redis.Mysql等等,有的公司会有相关版本的要求, ...

  3. 推荐测试用例管理工具,看这篇就行。

    我们在考虑测试用例管理的时候,其实不能单纯考虑测试用管理,因为你的测试用例是需要和需求关联起来的,是需要和 bug 关联起来的.在有些行业,比如汽车.医药,不仅要对需求进行测试,还需要对架构设计.详细 ...

  4. CompletableFuture使用详解(全网看这一篇就行)

    Java8 CompletableFuture 用法全解_孙大圣666的博客-CSDN博客_completablefuture ​​​CompletableFuture使用详解(全网看这一篇就行)_代 ...

  5. 使用anaconda安装pytorch——看这一篇就行了

    开门见山 我的电脑里有python编译器 如何装pytorch框架? 答--用anaconda进行安装 翻阅了n多的文章 发现一个真理 看得越多 越容易出问题 那这里我针对每一个需要实现的目的 只放一 ...

  6. Vue开发入门看这篇文章就够了

    摘要: 很多值得了解的细节. 原文:Vue开发看这篇文章就够了 作者:Random Fundebug经授权转载,版权归原作者所有. 介绍 Vue 中文网 Vue github Vue.js 是一套构建 ...

  7. React入门看这篇就够了

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所 ...

  8. css清除浮动的几种方法_web前端学习路线分享CSS浮动-清除浮动篇

    web前端学习路线分享CSS浮动-清除浮动篇,为什么要清除浮动 这里所说的清除浮动,并不是不要浮动了,而是清除浮动与浮动之间的影响.那么到底会有什么影响呢? 1.高度塌陷 举个例子我们看一下. 我们在 ...

  9. vue开发看这篇文章就够了 vue知识大全

    Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的 ...

最新文章

  1. 面试官:你说你精通 Docker,那你来详细说说 Dockerfile 吧
  2. androidEditTextinputType及android:imeOptions=”actionDone”(转)
  3. R语言扩展包dplyr——数据清洗和整理
  4. JZOJ 5386. 【NOIP2017提高A组模拟9.23】碎
  5. Eclipse设置项目默认编码和换行符类型
  6. Effective C++学习第十天
  7. PHP----学生管理系统
  8. Apt 命令解说(apt-get update、apt-cache search package、apt-get install package、apt-get remove )
  9. An end-to-end TextSpotter with Explicit Alignment and Attention
  10. laravel 向模板中添加公共变量
  11. java 数据抓取 动态获得cookies里变动的属性_@CookieValue获取Cookie信息,使用Servlet API作为入参,处理模型数据...
  12. MBProgressHUD的基本使用
  13. 下列php语法描述错误的是,下列关于对象替换语法规则的描述中,错误的是( )。...
  14. mysql词法分析antlr4_sharding-jdbc之ANTLR4 SQL解析
  15. Windows2003工组环境通过CA证书对加密WEB服务器
  16. wordpress如何让百度快速收录_安顺如何发布信息百度收录在首页
  17. java实习实训管理系统ssm
  18. cocos2d-js 开发常见问题
  19. Rob Knight: PCR不需要做三个平行再混合!
  20. 客户说:在忙,回头联系你。如何话术应对呢?

热门文章

  1. 复数java实验_java实验 复数
  2. FBI 网站被黑,泄露数据已在 Pastebin 公布
  3. 常用浏览器兼容性测试点总结
  4. 关于网友0x1abin的MultiTimer
  5. Java、JSP宠物狗销售系统
  6. Ubuntu下正确姿势使用GDB调试Android Native进程
  7. NCX数据库导入导出
  8. Windows server 2012 R2服务器RDP远程桌面会话主机服务的一些注意事项
  9. 中国方案入选世界5G标准
  10. Unity Manual阅读记录——Animation(version 2019.4)