Dieser Artikel besucht ein Projekt 2020: Animation 3D -Olympische Ringe. Der ursprüngliche SCSS -Code fehlte zwar nicht moderner Effizienz. Diese aktualisierte Version verwendet reine CSS, wodurch trigonometrische Funktionen und relative Farbsyntax für sauberere, prägnantere Code genutzt werden. Das Ergebnis ist eine leistungsfähigere und elegantere Lösung.
Der 3D -Effekt wird unter Verwendung von Layered Divs erreicht. Jeder Ring umfasst 16 Schichten, jeweils ein etwas anderer Schatten, um einen Beleuchtungseffekt zu erzielen. Die Größe und Positionierung der Schichten erzeugen die Illusion eines dreidimensionalen Rings.
HTML -Struktur
Die HTML besteht aus fünf <div> Elementen (jeweils pro Ring), die jeweils 16 verschachtelte <code><i></i>
Elemente enthalten, die die Schichten darstellen. Jedes <i></i>
Element verwendet eine benutzerdefinierte Eigenschaft --i
(zwischen 1 und 16), um sein Styling über CSS zu steuern. Emmet kann das Erstellen der sich wiederholenden HTML -Struktur vereinfachen. Hier ist ein Ausschnitt:
<div class="rings"> <div class="ring ring__1"> <i style="--i: 1;"></i> <i style="--i: 2;"></i> <!-- ... more layers ... --> <i style="--i: 16;"></i> </div> <!-- ... more rings ... --> </div>
Die --i
Eigenschaft dient als Multiplikator in CSS -Berechnungen für Schichtposition, Größe und Farbe.
CSS Styling
Der Container .rings
verwendet position: relative
, um die absolut positionierten Ringe zu enthalten. Jedes .ring
ist absolut positioniert und seine <i></i>
Kinder erben eine absolute Positionierung. border-radius: 50%
erstellt die kreisförmige Form. Eine benutzerdefinierte Eigenschaft --ringColor
setzt die Grundfarbe.
Die auf einen negativen Wert festgelegte inset
-Mobilie positioniert die Schichten außerhalb des .ring
-Elements und definiert ihre Größe effektiv. Die mit --translateZ
berechnete --i
benutzerdefinierte Eigenschaft positioniert Schichten entlang der Z-Achse, um Tiefe zu erstellen:
.ring { position: absolute; --ringColor: #0085c7; i { position: absolute; inset: -100px; border-radius: 50%; --translateZ: calc(var(--i) * 2px); transform: rotateY(-45deg) translateZ(var(--translateZ)); } }
Schattierung mit relativer Farbsyntax
Schattierung wird unter Verwendung der relativen Farbsyntax erreicht. Eine aus --light
berechnete 🎜> -Senformation ändert die Leichtigkeit von --i
: --ringColor
i { --light: calc(var(--i) / 16); --layerColor: rgb(from var(--ringColor) calc(r * var(--light)) calc(g * var(--light)) calc(b * var(--light))); border: var(--size) var(--layerColor) solid; outline: var(--size) var(--layerColor) solid; }Dies verdunkelt die Schichten nach hinten dynamisch und verbessert den 3D -Effekt. Eine Umrisse wird hinzugefügt, um sicherzustellen, dass die Schattierung sowohl an den inneren als auch an den Außenkanten des Rings sichtbar ist.
formen und animation
Die mit der
-Funktion berechnete --size
benutzerdefinierte Eigenschaft bestimmt die Randdicke und erzeugt die kreisförmige Form des Rings: sin()
i { --size: calc(sin(var(--i) * 11.25deg) * 16px); /* ... other styles ... */ }Animation wird mit
und der @keyframes
Eigenschaft implementiert. Die Animationsdauer jedes Rings wird durch eine benutzerdefinierte Eigenschaft animation
kontrolliert, wobei eine negative Verzögerung die Animationen stolpert. --duration
Abschluss und Optimierung
Eine leichte X-Achse-Rotation am .rings
-Container fügt die Perspektive hinzu. Pseudo-Elemente (::after
) erzeugen verschwommene Schatten, wodurch der 3D-Effekt weiter verbessert wird. Das endgültige CSS ist hoch optimiert und wiederverwendbar, was die Kraft moderner CSS -Merkmale demonstriert. Der Code ist wesentlich effizienter und wartbarer als die ursprüngliche SCSS -Version.
Das obige ist der detaillierte Inhalt vonCSS -Olympische Ringe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Ja, youShouldlearnbothflexBoxandgrid.1) FlexBoxiSidealfore-dimensional, flexibelayoutslikenAvigationMenus.2) GridexcelStwo-dimensional, komplexDesignsuchasmagazinelayouts.3) Kombininierungs-Botenhances-Flexible-und-und -Anteilungskraft, und -forsfossivität,

Wie sieht es aus, Ihren eigenen Code neu zu gestalten? John Rhea nimmt eine alte CSS -Animation auseinander, die er geschrieben hat, und geht durch den Denkprozess der Optimierung.

CsSanimationsarenotinherenthardbutRequirePractICEANDUnDing-fordertofcsPropertiesandTimingfunktionen.1) StartwithsimpleanimationslikescalingabuttononoversKeyFrames.2) useaSingFunctionslikecubic-BezierForteffects, SuchasabouNects, SuchasabouNects,, zu

@KeyFramesispopulardUeToitSverSatility und PowerIncreatingsmoothcsSanimations.KectrickSinclude: 1) DefiningsmoothTransitionSbetTates, 2) AnimatingMultipleProperTiesimultan, 3) mit VendorprefixesforBrowserCompatible, 4) Kombinieren, 4) Kombinieren, 4) Kombinieren, 4) Kombinieren, 4) Kombinieren

CSSCOUSTERSSARUSTOMANAGEAUTOMATICNUMBERINGINWEBDEsigns.1) Sie konzipieren SieForsofcontents, ListItems und CustomNumbering.2) AdvanceduSesincnednumberingSystem.3) CHEFORDIGESINCLUDSERCOMPATIBILIBLEISE.4) CreativeuSinvolvecustInance

Die Verwendung von Scroll -Schatten, insbesondere für mobile Geräte, ist ein subtiles Stück UX, das Chris zuvor abgedeckt hat. Geoff deckte einen neueren Ansatz ab, der die Immobilie der Animationszeit verwendet. Hier ist ein anderer Weg.

Lassen Sie uns eine kurze Auffrischung durchlaufen. Bildkarten datieren bis zu HTML 3.2, wobei zuerst die serverseitigen Karten und dann die clientseitigen Karten klickbare Regionen über ein Bild mit Karten- und Bereichselementen definiert sind.

Die Umfrage von State of Devs ist nun offen für die Teilnahme und deckt im Gegensatz zu früheren Umfragen alles außer Code ab: Karriere, Arbeitsplatz, aber auch Gesundheit, Hobbys und mehr.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Dreamweaver Mac
Visuelle Webentwicklungstools
