CSS对象分辨率

时间:2013-09-21 17:05:23

标签: css class object

如果CSS中的两个类具有相同的派生类,CSS如何解析正确的类?

例如:

.ClassA.Left {}
.ClassB.Left {}
.Left {}

由于“左”这个类可以应用于任何对象,我如何才能确定它是我想要的? 用什么优先级来绑定'Left'?

3 个答案:

答案 0 :(得分:1)

.Left作为一个类的任何内容都会在.Left中应用这些样式,除非它ClassAclass="Left ClassA")然后它将获得.Left.ClassA.Left的样式,其中ClassA.Left具有优先权,因为它具有更高的特异性。相同的规则适用于class="Left ClassB"

请参见此处的特异性:https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity

答案 1 :(得分:0)

  

特异性

     

概念

     

特定性是浏览器决定哪个属性的方法   值与元素最相关并且可以应用。   特异性仅基于由组成的匹配规则   选择不同的种类。

     

如何计算?

     

特异性是根据计数的连续计算的   每个选择器类型。它不是一个适用于的重量   相应的匹配表达式。

     

在特异性平等的情况下,发现最新的声明   CSS应用于元素。

     

注意:文档树中元素的接近程度对此没有影响   特异性。

     

特异性的新月顺序

     

以下选择者列表是通过提高特异性来实现的:

     
      
  • 通用选择器
  •   
  • 类型选择器
  •   
  • 班级选择器
  •   
  • 属性选择器
  •   
  • 伪类
  •   
  • ID选择器
  •   
  • 内联样式
  •   
     

!重要的例外

     

当样式声明使用!important规则时,这个   声明覆盖CSS中的任何其他声明,无论在何处   它在声明列表中。虽然,!重要无关   具有特异性。

     

:不例外

     

否定伪类:不被认为是伪类   特异性计算。虽然,选择者放入了   否定伪类计为正常选择器。

来源:https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity

答案 2 :(得分:0)

同样,如果元素具有所有三个类(ClassA,ClassB和Left),则CSS表中列出的类的顺序很重要。

.ClassA.Left会被.ClassB.Left(对于常见属性)击败,因为.ClassB.Left在级联中较低。

单个类选择器被多个类选择器击败,因此.ClassA.Left击败.ClassA

HTML中类的源顺序不是一个因素。

<强> Codepen Specificity Example