博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS中选择器的权重值
阅读量:6243 次
发布时间:2019-06-22

本文共 1331 字,大约阅读时间需要 4 分钟。

CSS 具有自己的优先级计算方法,而不仅仅是行间>内部>外部、ID>class>元素

1. 样式类型

  • 行间样式

我的行间CSS样式。

  • 内联样式
  • 外部样式

2. 选择器类型

选择器 栗子
ID #id
class .class
标签 p
属性 [type='text']
伪类 :hover
伪元素 ::first-line
相邻选择器、子代选择器 > +

3. 权重计算规则

  1. 内联样式,如: style="...",权值为1000
  2. ID选择器,如:#content,权值为0100
  3. 类,伪类、属性选择器,如.content,权值为0010
  4. 类型选择器、伪元素选择器,如div p,权值为0001
  5. 通配符、子选择器、相邻选择器等。如* > +,权值为0000
  6. 继承的样式没有权值

4. 比较规则

  • 1,0,0,0 > 0,99,99,99。也就是说从左往右逐个等级比较,前一等级相等才往后比。
  • 无论是行间、内部和外部样式,都是按照这个规则来进行比较。而不是直观的行间>内部>外部样式;ID>class>元素。之所以有这样的错觉,是因为确实行间为第一等的权重,所以它的权重是最高的。而内部样式可能一般写在了外部样式引用了之后,所以覆盖掉了之前的。
  • 在权重相同的情况下,后面的样式会覆盖掉前面的样式。
  • 通配符、子选择器、相邻选择器等的。虽然权值为0000,但是也比继承的样式优先,0 权值比无权值优先。

5. !important

!important 的作用是提升优先级,换句话说。加了这句的样式的优先级是最高的(比内联样式的优先级还高)。

我显示红色

 

ie7+和别的浏览器对important的这种作用的支持度都很好。只有ie6-有些bug

p{  color:red !important;  color:blue;    }        //会显示blue

但是这并不说明ie6不支持important,只是支持上有些bug。

p{color:red !important;  }p{color:blue;}        // 这样就会显示的是red。说明ie6还是支持important的

!important 规则被应用在一个样式声明中时,该样式声明会覆盖CSS中任何其他的声明,无论它处在声明列表中的哪个位置。尽管如此,!important 规则还是与优先级毫无关系。使用 !important 不是一个好习惯,因为它改变了你样式表本来的级联规则,从而难以调试。

在使用 !important 时需要注意:

  • Never 永远不要在全站范围的 css 上使用 !important
  • Only 只在需要覆盖全站或外部 css(例如引用的 ExtJs 或者YUI )的特定页面中使用 !important
  • Never 永远不要在你的插件中使用 !important
  • Always 要优化考虑使用样式规则的优先级来解决问题而不是 !important

网上的帖子大多深浅不一,甚至有些前后矛盾,在下的文章都是学习过程中的总结,如果发现错误,欢迎留言指出~

如果你也热爱分享知识,那就加入我们吧,QQ群号:431679880 ~

参考:

转载地址:http://bapia.baihongyu.com/

你可能感兴趣的文章
工作收获点
查看>>
PhpStorm Terminal终端无法打开
查看>>
学习笔记TF036:实现Bidirectional LSTM Classifier
查看>>
应用监控预警&服务链路跟踪-Pinpoint介绍
查看>>
前端:后端,我要分手
查看>>
smarty isset 怎样使用
查看>>
用图帮你了解https的原理
查看>>
区块链如何改变AI
查看>>
HTML5/JavaScript UI控件Wijmo Enterprise 2018v2发布
查看>>
工业仪表盘控件Iocomp ActiveX常见问题(2):Visual Basic中的错误
查看>>
Docker下使用selenium+testng实现web自动化
查看>>
当执行npm时遇到的问题
查看>>
JAVA程序员面试30问(附带答案)
查看>>
Java性能调优攻略全分享,七步搞定!(附学习资料分享)
查看>>
企业级 SpringBoot 教程 (六)springboot整合mybatis
查看>>
程序员写了一段注释, 第二天惨被公司开除, 公司巧妙回怼
查看>>
8.eclipse 安装 lombook插件
查看>>
Maven项目中使用本地JAR包方案4
查看>>
如何利用XMind创建概念图
查看>>
ldap接触(3)之LDAP特定错误以及错误一览表
查看>>