如何将内容设置为计数器?


通常,我们使用 JavaScript 将动态内容设置为网页上内容的计数器。但在这篇文章中,我们将学习如何使用 CSS 计数器属性将内容设置为计数器。可以通过在 `before` 或 `after` 伪选择器内使用计数器属性来将内容设置为计数器。

现在让我们看看我们可以用来使用 CSS 将内容设置为计数器的计数器属性。

CSS 计数器就像其他语言中的变量一样。我们可以使用 CSS 规则或属性递增它们的值。让我们看看如何使用以下属性创建、递增并将内容设置为计数器。

  • `counter-reset` − 此 CSS 属性将创建或重置计数器。

  • `counter-increment` − 我们可以使用此 CSS 属性来递增计数器值。

  • `content` − 这是在伪选择器内用于在元素之前或之后设置内容的属性。

  • `counter()` 方法 − `counter()` 方法会将计数器的值添加到内容组件中。

语法

下面的语法将向您展示如何将所有这些属性一起使用以使用 CSS 将内容设置为计数器:

parent-element selector {
   counter-reset: name; // It will create or reset the CSS counter with the given name
}

child-element :: before / after {
   counter-increment: name; // increment the counter with the given name
   content: counter(name); // It will set the content as counter
}

现在让我们通过实际使用代码示例来详细了解上述属性。

步骤

  • 步骤 1 − 在第一步中,我们将向 HTML 文档中添加一个包含所有嵌套 div 容器的父 div 容器和一个类。

  • 步骤 2 − 在下一步中,我们将创建内部 div 容器或上一步中创建的 div 元素的子容器。

  • 步骤 3 − 在最后一步中,我们将按照上面所示的语法,使用上述属性以及父元素和子元素。

示例

下面的示例将解释如何使用上面指定的语法中指定的 CSS 属性将内容设置为任何元素的计数器:

<!DOCTYPE html>
<html>
<head>
   <style>
      .outer-div{
         border: 2px solid red;
         counter-reset: myDivs;
      }
      .inner-div{
         border: 1px solid green;
         margin: 5px;
         padding: 5px;
      }
      .inner-div::after{
         counter-increment: myDivs;
         content: counter(myDivs);
      }
   </style>
</head>
<body>
   <center>
      <h2>Set the content as a counter</h2>
      <p>The numbering to below content is set using the content as counter with CSS.</p>
      <div class = "outer-div">
         This is main outer div container.
         <div class = "inner-div"> This is inner div No. </div>
         <div class = "inner-div"> This is inner div No. </div>
         <div class = "inner-div"> This is inner div No. </div>
         <div class = "inner-div"> This is inner div No. </div>
         <div class = "inner-div"> This is inner div No. </div>
      </div>
   </center>
</body>
</html>

在此示例中,我们将内容设置为主容器的直接子元素的计数器。我们使用 `counter-reset` 属性创建了一个计数器,然后分别使用 `counter-increment` 和 `content` 属性递增它并将其设置为内容。

让我们看看另一个代码示例,在这个示例中,我们还将内容设置为内部嵌套 div 的子元素的计数器。

此示例的方法与上一个示例的算法几乎相同。您只需要在具有 `inner-div` 类的元素内添加更多子元素,为它们启动一个新的计数器,并将其设置为这些子元素的内容。

示例

下面的示例将说明上述算法以及对上一个示例的更改,以便将计数器设置为嵌套的 div 元素:

<!DOCTYPE html>
<html lang = "en">
<head>
   <style>
      .outer-div{
         border: 2px solid red;
         counter-reset: myDivs;
      }
      .inner-div{
         border: 1px solid green;
         counter-reset: innermostDivs;
         margin: 5px;
         padding: 5px;
      }
      .inner-div::before{
         counter-increment: myDivs;
         content: counter(myDivs) ".";
      }
      .innermost-div::after{
         counter-increment: innermostDivs;
         content: counter(innermostDivs);
      }

   </style>
</head>
<body>
   <center>
      <h2>Set the content as a counter</h2>
      <p>The numbering to below content is set using the content as counter with CSS.</p>
      <div class = "outer-div">
         This is main outer div container.
         <div class = "inner-div"> This is the first nested inner div layer. </div>
         <div class = "inner-div"> This is the first nested inner div layer. </div>
         <div class = "inner-div"> 
            This is the first nested inner div layer.
            <div class = "innermost-div"> This is innermost div No. </div> 
            <div class = "innermost-div"> This is innermost div No. </div>
            <div class = "innermost-div"> This is innermost div No. </div>
         </div>
         <div class = "inner-div"> This is the first nested inner div layer. </div>
         <div class = "inner-div"> 
            This is the first nested inner div layer.
            <div class = "innermost-div"> This is innermost div No. </div> 
            <div class = "innermost-div"> This is innermost div No. </div>
            <div class = "innermost-div"> This is innermost div No. </div> 
         </div>
      </div>
   </center>
</body>
</html>

在上例中,我们使用两个不同的计数器将内容设置为主容器的直接子元素以及这些子元素的子元素的计数器,并在每个子元素之前和之后设置数字。

结论

在这篇文章中,我们学习了如何使用不同的 CSS 属性将内容设置为计数器,并通过不同的代码示例详细了解它们。我们通过两个不同的代码示例讨论并理解了这种方法。在前一个示例中,我们在主容器的直接子元素之后设置了数字。而在后一个示例中,我们使用相同的方法将内容设置为主容器的子元素及其子元素的计数器。

更新于:2023年11月20日

99 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告