Zuerst werden wir Folgendes bauen. Stellen Sie Ihren Timer ein!

Kommt Ihnen das bekannt vor?
Wenn ja, dann weil Sie das irgendwo gesehen haben - Slack!
Lassen Sie uns ein paar Dinge lernen, indem wir dies mit nur CSS und etwas gutem alten HTML neu erstellen.
Wenn Sie gerne Code schreiben, rufen Sie Codepen auf und erstellen Sie einen neuen Stift.
Jetzt aber los!
1. Das Markup
Das dafür erforderliche Markup ist recht einfach. Hier ist es:
For new sidebar colors, click your workspace name, then Preferences > Sidebar > Theme
- Your friends at Slack;
Einfach, oder?
Wenn Sie nicht sicher sind, warum die Klassennamen seltsame Striche haben, habe ich den Grund dafür in diesem Artikel erläutert.
Es gibt eine Menge Text und eine .loading__anim
Zeitspanne, um sich als animiertes Symbol auszugeben.
Das Ergebnis ist die einfache Ansicht unten.

2. Zentrieren Sie den Inhalt
Das Ergebnis ist nicht das schönste, was es zu sehen gibt. Lassen Sie uns das gesamte .loading
Abschnittselement auf der Seite eingeben.
body { display: flex; justify-content: center; align-items: center; min-height: 100vh;}

Sieht besser aus?
3. Gestalten Sie den Ladetext
Ich kenne. Wir werden bald zu den animierten Sachen kommen. Lassen Sie uns den .loading
Text zunächst so gestalten, dass er viel besser aussieht.
.loading { max-width: 50%; line-height: 1.4; font-size: 1.2rem; font-weight: bold; text-align: center;}

4. Gestalten Sie den Autorentext so, dass er etwas anders aussieht.
.loading__author { font-weight: normal; font-size: 0.9rem; color: rgba(189,189,189 ,1); margin: 0.6rem 0 2rem 0; display: block;}
Los geht's!

5. Erstellen Sie den animierten Loader
Der mit Spannung erwartete Schritt ist hier. Dies wird der längste der Schritte sein, da ich einige Zeit damit verbringen werde, sicherzustellen, dass Sie verstehen, wie es funktioniert.
Wenn Sie nicht weiterkommen, schreiben Sie einen Kommentar und ich helfe Ihnen gerne weiter.
Hey, schau dir den Lader nochmal an.

Sie werden feststellen, dass die Hälfte des Strichs blau und die andere Hälfte grau ist. Okay, das ist geklärt. Außerdem werden HTML
Elemente standardmäßig nicht gerundet. Alles ist ein Boxelement . Die erste echte Herausforderung wird darin bestehen, dem .loading__anim
Element halbe Grenzen zu geben .
Mach dir keine Sorgen, wenn du das noch nicht verstehst. Ich werde darauf zurückkommen.
Lassen Sie uns zunächst die Abmessungen des Laders sortieren.
.loading__anim { width: 35px; height: 35px; }
Im Moment befindet sich der Lader in derselben Zeile wie der Text. Das liegt daran, dass es sich um ein span
Element handelt, das zufällig ein HTML
Inline- Element ist.
Stellen wir sicher, dass der Lader in einer anderen Zeile sitzt, dh in einer anderen Zeile beginnt, im Gegensatz zum Standardverhalten von inline
Elementen.
.loading__anim { width: 35px; height: 35px; display: inline-block; }
Stellen wir abschließend sicher, dass für den Lader ein Rahmen festgelegt ist.
.loading__anim { width: 35px; height: 35px; display: inline-block; border: 5px solid rgba(189,189,189 ,0.25); }
Dies gibt einen grauen5px
Rand um das Element.
Hier ist das Ergebnis davon.

Noch nicht so toll. Machen wir das noch besser.
Ein Element hat vier Seiten, top
, bottom
, left
, undright
Die zuvor festgelegte border
Deklaration wurde auf alle Seiten des Elements angewendet.
To create the loader, we need two sides of the element to have different colors.
It doesn’t matter what sides you choose. I have used the top
and left
sides below
.loading__anim { width: 35px; height: 35px; display: inline-block; border: 5px solid rgba(189,189,189 ,0.25); border-left-color: rgba(3,155,229 ,1); border-top-color: rgba(3,155,229 ,1); }
Now, the left
and top
sides will have a blueish color for their borders. Here’s the result of that:

We’re getting somewhere!
The loader is round, NOT rectangular. Let’s change this by giving the .loader__anim
element a border-radius
of 50%
Now we have this:

Not so bad, huh?
The final step is to animate this.
@keyframes rotate { to { transform: rotate(1turn) }}
Hopefully, you have an idea of how CSS animations work. 1turn
is equal to 360deg
, that is a complete turn rotates 360 degrees.
And apply it like this:
animation: rotate 600ms infinite linear;
Yo! We did it. Does that all make sense?
By the way, see the result below:

Pretty cool, huh?
If any of the steps confused you, drop a comment and I’ll be happy to help.
Ready to become Pro?
I have created a free CSS guide to get your CSS skills blazing, immediately. Get the free ebook.
