如何使用 CSS 指定类的顺序?


层叠样式表 (CSS) 是 Web 开发中一个强大的组件,它使开发者能够确定其网站的视觉外观。在 CSS 中,类用作选择器,使我们能够将几种特定样式应用于元素。您还可以为特定元素使用多个类。

但是,当您将多个类应用于一个元素时,有必要了解如何指定这些类的呈现顺序,以避免差异和意外结果。在本文中,我们将讨论指定 CSS 中类顺序的不同方法,以及特异性和级联规则的重要性,这些规则有助于确定优先级。

什么是 CSS 中的类?

在 CSS 中,类是一个选择器,用于将特定样式集应用于 HTML 元素。它们是强大的工具,使我们能够将元素组合在一起,并在网页上的多个元素之间保持一致性。对于大型网站,它允许我们重用许多元素的 CSS 样式。

为元素使用多个类

如果您在 CSS 中定义了一组类,则可以将它们的组合用于特定元素,以使其独一无二且具有吸引力。但是,您必须指定类的顺序,以便编译器能够顺利运行代码并根据您的需求提供输出。这是通过**级联**和**特异性**规则完成的。

我们在 CSS 文件中定义类的顺序用于确定在将多个类应用于元素时的优先级。这是因为 CSS 是**级联**的,这意味着编译器从**下到上**和**从右到左**读取它。因此,在 CSS 代码中最后提到的一个具有**优先级**。让我们通过一个例子更好地理解这一点。

示例

假设您在 CSS 文件中定义了两个类。

<html>
<head>
   <style>
      .class1 {
         margin: 10px;
         padding: 1px;
         text-align: center;
         font-size: 18px;
         color: red;
         letter-spacing: 1px;
      }
      .class2 {
         margin: 12px;
         padding: 5px;
         color: blue;
         font-size: 20px;
         font-family: Georgia;
         letter-spacing: 1px;
      }
      h1 {
         text-align: center;
      }
   </style>
</head> 
<body>   
   <h1> CSS Classes </h1>
   <div class="class1"> Here, we have applied class1 to the div element. </div>
   <div class="class2"> Here, we have applied class2 to the div element. </div>
   <div class="class1 class2"> This is an example. Here, we will apply both classes to the div element. </div>
</body>  
</html>

由于在 CSS 代码中.class2.class1之后声明,因此class2具有优先级。因此,当我们将class1class2都应用于 div 元素时,div 元素的样式大多是根据class2设置的。

但是,您可以看到在class2中未提及但在class1中存在的属性将应用于 div 元素。例如,text-align: centerclass1中提及,但在class2中未提及。但是,最后一个 div 元素仍然居中对齐。这是因为class1中唯一的属性将按原样应用于元素,但是,对于两个类中相同的属性,编译器使用级联规则来呈现它们。

类的顺序

HTML 中编写的类顺序并不决定优先级。请考虑以下示例

示例

假设您定义了与上述示例类似的两个类。但是,您已更改了 HTML 代码中类的顺序。您认为结果会怎样?它与前一个不同吗?让我们来看看。

<html>
<head>
   <style>
      .class1 {
         margin: 10px;
         padding: 1px;
         text-align: center;
         font-size: 18px;
         color: red;
         letter-spacing: 1px;
      }
      .class2 {
         margin: 12px;
         padding: 5px;
         color: blue;
         font-size: 20px;
         font-family: Georgia;
         letter-spacing: 1px;
      }
      h1 {
         text-align: center;
      }
   </style>
</head> 
<body>   
   <h1> CSS Classes </h1>
   <div class="class1 class2"> This is an example. Here, we will apply first class1 and then class2 to the div element. </div>
   <div class="class2 class1"> This is an example. Here, we will apply first class2 and then class1 to the div element. </div>
</body>  
</html>

如您所见,结果没有变化。样式将仅根据 CSS 中提到的类顺序应用。

在 CSS 中使用 !important 规则

在 CSS 中,!important 规则使开发人员能够覆盖样式的级联顺序,并确保所需的特定样式具有最高优先级。

语法

selector{
   property: value !important;
}

如果您在 CSS 属性旁边使用 !important 关键字,则编译器将确保将其应用于该元素,而不管样式的任何特异性顺序如何。让我们看一个例子。

输入

 Original Linked List: 1 -> 2 -> 3 -> 4 -> 5 -> null

示例

在下面的示例中,由于ba之前,因此,样式是根据b为最后一个 div 元素应用的。但是,文本的颜色是根据类“a”中编写的应用的,这意味着文本颜色红色。这是因为我们在类“a”中对颜色属性使用了!important关键字。

<html>
<head>
   <style>
      * {
         margin: 10px;
         padding: 2px;
      }
      .a {
         color: red !important;
         letter-spacing: 1px;
         text-shadow: 2px 2px 2px grey;
         font-size: 16px;
         font-family: Calibri;
      }
      .b {
         color: blue;
         letter-spacing: 1px;
         font-size: 20px;
         font-family: Georgia;
      }
   </style>
</head> 
<body>   
   <h1> !Important Rule </h1>
   <div class="a"> Here, we have applied only class "a" to the div element. </div>
   <div class="b"> Here, we have applied only class "b" to the div element. </div>
   <div class="a b"> Here, we have applied both the classes to the div element. </div>
</body>  
</html>

结论

在本文中,我们讨论了用于在将多个类应用于特定元素时指定 CSS 中类顺序的级联和特异性规则。我们还讨论了!important规则,该规则用于覆盖任何特异性顺序。

更新于:2023年5月2日

682 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告