Inhaltsverzeichnis
一、flex-end 对齐
二、CSS 变量动态计算
1. Flex-End-Ausrichtung
2. Dynamische Berechnung von CSS-Variablen
三、定义计数器样式
四、计数器的扩展
五、总结一下
Heim Web-Frontend CSS-Tutorial Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

Mar 24, 2022 am 10:55 AM
css

In diesem Artikel erhalten Sie praktische Tipps zur Verwendung von CSS und lernen verschiedene Methoden zur automatischen Vervollständigung von Zeichenfolgen durch CSS kennen.

Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

Wir stoßen häufig auf die Notwendigkeit einer String-Vervollständigung. Ein typisches Beispiel ist die Null-Auffülloperation in Zeit oder Datum, wie z. B.

2021-12-31
2022-03-03
Nach dem Login kopieren

Die übliche Methode ist

if (num < 10) {
  num = &#39;0&#39; + num
}
Nach dem Login kopieren

Später erschien die native Vervollständigung in JS. Die vollständigen Methoden < code>padStart() und padEnd() lauten wie folgtpadStart()padEnd(),如下

&#39;3&#39;.padStart(2, &#39;0&#39;)
// 结果是 ’03‘
&#39;12&#39;.padStart(2, &#39;0&#39;)
// 结果是 ’12‘
Nach dem Login kopieren

其实呢,在 CSS 中也是可以实现这样的效果的,并且有多种方案,下面一起看看吧,相信能有不一样的体会。【推荐学习:css视频教程

一、flex-end 对齐

先介绍一个比较容易理解的方案,也非常简单,假设 HTML 是这样的

<span>2</span>
-
<span>28</span>
Nach dem Login kopieren

一般情况下,还会设置等宽字体,看起来更加协调、美观

span{
  font-family: Consolas, Monaco, monospace;
}
Nach dem Login kopieren

Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

我们需要在数字前用伪元素生成一个“0”

span::before{
  content: &#39;0&#39;
}
Nach dem Login kopieren
Nach dem Login kopieren

Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

接下来,给元素设置一个固定宽度,这里由于是等宽字体,所以可以直接设置为2ch,注意这个ch单位,它表示字符0的宽度(有兴趣的可以参考这篇文章:等宽字体在web布局中应用以及CSS3 ch单位嘿嘿),然后设置右对齐就行了

span{
  /**/
  display: inline-flex;
  width: 2ch;
  justify-content: flex-end;
}
Nach dem Login kopieren

Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

原理很简单,在 2 个字符宽度的空间里放置 3 个字符,以右对齐的方式,是不是就自动把最左边的 0 给挤出去了?然后超出隐藏就可以了

Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

完整代码如下

span::before{
  content: &#39;0&#39;
}
span{
  display: inline-flex;
  width: 2ch;
  justify-content: flex-end;
  overflow: hidden;
}
Nach dem Login kopieren

二、CSS 变量动态计算

由于 CSS 无法获取标签的文本内容,所以这里需要构建一个 CSS 变量传递下去,如下

<span style="--num:2">2</span>
-
<span style="--num:12">28</span>
Nach dem Login kopieren

通过 var(--num)拿到变量以后,就可以进行一系列的逻辑判断了,那么,如何在小于 10 的情况下自动补零呢?

同样我们需要在数字前用伪元素生成一个“0”

span::before{
  content: &#39;0&#39;
}
Nach dem Login kopieren
Nach dem Login kopieren

然后,只需要根据 CSS 变量动态隐藏这个伪元素就行了,先设置透明度,如下

span::before{
  /**/
  opacity: calc(10 - var(--num));
}
Nach dem Login kopieren

效果如下

Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

具体的逻辑就是

  • --num等于 10 时,透明度的计算值就是 0,直接按照 0 来渲染

  • --num大于 10 时,透明度的计算值就是负数值,会按照 0 来渲染

  • --num小于 10 时,透明度的计算值就是大于等于1的值,会按照 1 来渲染

所以,最终的表现就是当大于等于10时不可见,小于10的时候可见

但是,这样还是有点问题的,透明度不会影响元素的位置,如下

Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

如何消除这个位置呢?方法有很多,这里采用 margin-left 的方式,如下

span::before{
  /**/
  margin-left: clamp(-1ch, calc((9 - var(--num)) * 1ch),0ch);
}
Nach dem Login kopieren

这里用到了clamp,你可以理解为一个区间,有 3 个值 [Min, Val, Max],前后分别是最小、最大值,中间是可变值(注意这里是和 9 比较),所以这里的逻辑就是

  • --num大于等于 10 时,假设为 15,中间 calc 值计算为 -5ch,clamp 取值为最小值 -1ch
  • --num
    span::before{
      content: &#39;0&#39;;
      opacity: calc(10 - var(--num));
      margin-left: clamp(-1ch, calc((9 - var(--num)) * 1ch),0ch);
    }
    Nach dem Login kopieren
    Nach dem Login kopieren
    Tatsächlich kann ein solcher Effekt auch in CSS erzielt werden, und es gibt viele Lösungen. Lassen Sie uns sie unten gemeinsam besprechen Werfen Sie einen Blick darauf, ich glaube, Sie werden eine andere Erfahrung machen. [Empfohlenes Lernen: CSS-Video-Tutorial]

    1. Flex-End-Ausrichtung

  • Stellen Sie zunächst eine relativ leicht verständliche Lösung vor, die auch sehr einfach ist . Gehen Sie davon aus, dass HTML so ist
span::before{
  counter-reset: num var(--num);
  content: counter(num);
}
Nach dem Login kopieren
Nach dem Login kopieren

Unter normalen Umständen wird eine Schriftart mit fester Breite so eingestellt, dass sie koordinierter und schöner aussieht

list-style-type: lower-latin;
Nach dem Login kopieren
Nach dem Login kopieren
Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

Wir müssen ein Pseudoelement verwenden, um eine „0“ vor der Zahl zu generieren

list-style-type: decimal-leading-zero;
Nach dem Login kopieren
Nach dem Login kopieren

Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!

Als nächstes legen Sie eine feste Breite fest Da es sich bei dem Element um eine Schriftart mit konstanter Breite handelt, kann diese direkt auf 2ch eingestellt werden. Beachten Sie diese ch-Einheit, die die Breite des Zeichens 0 (bei Interesse lesen Sie bitte diesen Artikel:Monospaced-Schriftarten werden in Weblayouts und CSS3-Kanaleinheiten verwendet, hehe

) und dann die richtige Ausrichtung festlegen

span::before{
  counter-reset: num var(--num);
  content: counter(num, decimal-leading-zero);
}
Nach dem Login kopieren
Nach dem Login kopieren
🎜Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!🎜🎜Das Prinzip ist ganz einfach, Platz 3 Zeichen in einem Abstand von 2 Zeichen Breite, rechtsbündig, wird das ganz linke 🎜0🎜 automatisch herausgedrückt? Dann gehen Sie einfach über das Verstecken hinaus🎜🎜 />🎜🎜Der vollständige Code lautet wie folgt🎜
001、002、...、010、012、...、098、099、100
Nach dem Login kopieren
Nach dem Login kopieren

2. Dynamische Berechnung von CSS-Variablen

🎜Da CSS den Textinhalt des Etiketts nicht abrufen kann, ist eine CSS-Variable erforderlich Die Übertragung muss hier wie folgt erstellt werden: 🎜
&#39;1&#39;.padStart(3, &#39;0&#39;)
// 结果是 ’001‘
&#39;99&#39;.padStart(3, &#39;0&#39;)
// 结果是 ’099‘
&#39;101&#39;.padStart(3, &#39;0&#39;)
// 结果是 ’101‘
Nach dem Login kopieren
Nach dem Login kopieren
🎜Nachdem Sie die Variable über var(--num) erhalten haben, können Sie eine Reihe logischer Urteile fällen. So können Sie Nullen automatisch ausfüllen wenn es weniger als 10 ist? 🎜🎜In ähnlicher Weise müssen wir ein Pseudoelement verwenden, um eine „0“ vor der Zahl zu generieren🎜
pad: 3 "0";
Nach dem Login kopieren
Nach dem Login kopieren
🎜Dann müssen wir das Pseudoelement nur entsprechend der CSS-Variablen dynamisch ausblenden. Stellen Sie zunächst die Transparenz wie folgt ein: Der Effekt ist wie folgt🎜🎜Magisches CSS zum automatischen Vervollständigen von Zeichenfolgen!🎜🎜Die spezifische Logik ist🎜
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So fügen Sie Bilder auf Bootstrap ein So fügen Sie Bilder auf Bootstrap ein Apr 07, 2025 pm 03:30 PM

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.

So verwenden Sie die Bootstrap -Taste So verwenden Sie die Bootstrap -Taste Apr 07, 2025 pm 03:09 PM

Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen

So richten Sie das Framework für Bootstrap ein So richten Sie das Framework für Bootstrap ein Apr 07, 2025 pm 03:27 PM

Um das Bootstrap -Framework einzurichten, müssen Sie die folgenden Schritte befolgen: 1. Verweisen Sie die Bootstrap -Datei über CDN; 2. Laden Sie die Datei auf Ihrem eigenen Server herunter und hosten Sie sie. 3.. Fügen Sie die Bootstrap -Datei in HTML hinzu; 4. Kompilieren Sie Sass/weniger bei Bedarf; 5. Importieren Sie eine benutzerdefinierte Datei (optional). Sobald die Einrichtung abgeschlossen ist, können Sie die Grid -Systeme, -Komponenten und -stile von Bootstrap verwenden, um reaktionsschnelle Websites und Anwendungen zu erstellen.

So ändern Sie Bootstrap So ändern Sie Bootstrap Apr 07, 2025 pm 03:18 PM

Um die Größe der Elemente in Bootstrap anzupassen, können Sie die Dimensionsklasse verwenden, einschließlich: Einstellbreite:.

So sehen Sie das Datum der Bootstrap So sehen Sie das Datum der Bootstrap Apr 07, 2025 pm 03:03 PM

ANTWORT: Sie können die Datumsauswahlkomponente von Bootstrap verwenden, um Daten auf der Seite anzuzeigen. Schritte: Stellen Sie das Bootstrap -Framework ein. Erstellen Sie ein Eingangsfeld für Datumsauswahl in HTML. Bootstrap fügt dem Selektor automatisch Stile hinzu. Verwenden Sie JavaScript, um das ausgewählte Datum zu erhalten.

So schreiben Sie geteilte Zeilen auf Bootstrap So schreiben Sie geteilte Zeilen auf Bootstrap Apr 07, 2025 pm 03:12 PM

Es gibt zwei Möglichkeiten, eine Bootstrap -Split -Zeile zu erstellen: Verwenden des Tags, das eine horizontale Split -Linie erstellt. Verwenden Sie die CSS -Border -Eigenschaft, um benutzerdefinierte Style Split -Linien zu erstellen.

Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Die Rollen von HTML, CSS und JavaScript: Kernverantwortung Apr 08, 2025 pm 07:05 PM

HTML definiert die Webstruktur, CSS ist für Stil und Layout verantwortlich, und JavaScript ergibt eine dynamische Interaktion. Die drei erfüllen ihre Aufgaben in der Webentwicklung und erstellen gemeinsam eine farbenfrohe Website.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

See all articles