CSS 中选择器的优先级以及CSS 权重如何计算

253 阅读2分钟

css中选择器的优先级

  1. !important:拥有最高的优先级,加上!important可以覆盖父级的样式,在样式后面直接添加,比如(color:red!important;)
  2. 行内样式:写在html标签的style属性中的样式,优先级比!important低一级,缺点:不可以复用,只能对应每一个标签,结构样式没有分离,不利于维护,在开发静态结构的时候极为不方便。这个缺点在后期的开发项目中基本可以忽略,交互式页面根绝用户的操作响应的效果一般比较单一,即使影响多个元素也是循环遍历,对于我们开发者也是用一个组件进行循环。
  3. ID选择器:ID选择器会根据标签的ID属性匹配样式,一个id只能使用一次。在项目中我们看到id就要知道,这一属性明是唯一的,不可复用的。就像我们的身份证号,不可重复。 4.类选择器: 类选择器会根据标签中class属性来匹配样式,可以复用,是最常用的选择器。 5.标签选择器:标签选择器就是用html标签名作为选择器,有点是能快速找到页面中所有的同类型标签,给他们同样的样式,一般用在页面的初始化。缺点不可以进行个性化的设计。 6.通配符选择器:*{} 就是通配符选择器,给所有标签添加这个选择器样式。 7.继承:继承是子标签自身没有的样式继承父类(嵌套的标签,可以嵌套多层)标签的样式。

CSS 权重如何计算

css的权重可以将它当成一个四位数的二进制数(0000),从左向右分别是:内样式=>>id选择器=>>类选择器=>>标签选择 。 每发现有一个类型的选择器就在对应的位置上加1。最后比较两个选择的二进制数那个大,就执行哪一个。还有一个特殊请!important, 只要发现有!important就不需要考虑权重,只会执行这个选择器。

个人经验:在后期的开发项目中,插件的样式往往是别人封装好的,我们修改样式不能直接操作根元素,加的样式多为继承。这个时候我们可以用 /deep/来修改根元素的样式,不用考虑继承。