CSS 如何指定类的顺序

CSS 如何指定类的顺序

层叠样式表(CSS)是网页开发中的一个强大组件,它使开发人员能够确定其网站的视觉效果。在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代码中在 .class1 之后声明了 .class2 ,所以 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

示例

在下面的示例中,由于 b 位于 a 之前,所以样式根据 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 规则,该规则用于覆盖任何具体性顺序。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

CSS 精选笔记