CSS - Math Functions: A Beginner's Guide

Hallo da, zukünftige CSS-Zauberer! Heute werden wir eine aufregende Reise in die Welt der CSS-Mathematikfunktionen antreten. Keine Sorge, wenn du noch nie eine Zeile Code geschrieben hast – ich werde dein freundlicher Guide sein, und wir werden dies Schritt für Schritt angehen. Am Ende dieses Tutorials wirst du erstaunt sein, wie viel du mit nur wenigen mathematischen Tricks in CSS erreichen kannst!

CSS - Math Functions

Grundlegende Arithmetikfunktionen

Lassen Sie uns mit den Grundlagen beginnen. CSS bietet uns einige einfache arithmetische Funktionen, die unser Leben beim Gestalten von Webseiten erheblich erleichtern können. Diese Funktionen ermöglichen es uns, Berechnungen direkt in unserem CSS-Code durchzuführen.

Die calc() Funktion

Die calc() Funktion ist das Schweizer Taschenmesser der CSS-Mathematik. Sie ermöglicht es Ihnen, grundlegende arithmetische Operationen direkt in Ihrem CSS durchzuführen. Sehen wir uns ein Beispiel an:

.box {
width: calc(100% - 20px);
}

In diesem Beispiel setzen wir die Breite eines Elements mit der Klasse "box" auf 100% der Breite des Elternteils minus 20 Pixel. Dies ist besonders nützlich, wenn Sie responsive Layouts erstellen möchten, die sich an verschiedene Bildschirmgrößen anpassen.

Lassen Sie uns das aufschlüsseln:

  • 100% repräsentiert die volle Breite des Elternteilelements.
  • -20px subtrahiert 20 Pixel von dieser Breite.
  • Die calc() Funktion führt diese Berechnung für uns durch.

Sie können alle vier grundlegenden arithmetischen Operationen in calc() verwenden: Addition (+), Subtraktion (-), Multiplikation (*) und Division (/). Hier ist ein weiteres Beispiel:

.column {
width: calc(33.33% - 10px);
margin-right: calc(10px * 2);
}

In diesem Fall erstellen wir ein dreispaltiges Layout. Jede Spalte nimmt ein Drittel der Breite (33.33%) minus 10 Pixel für den Abstand ein, und wir fügen einen rechten Rand hinzu, der zweimal so groß ist wie unser Abstand.

Vergleichsfunktionen

Nun, da wir die Grundlagen beherrschen, lassen Sie uns zu einigen Vergleichsfunktionen übergehen. Diese sind großartig für die Erstellung von responsiven Designs, die sich an verschiedene Bedingungen anpassen.

Die min() Funktion

Die min() Funktion gibt den kleinsten Wert einer Liste zurück. Sie ist perfekt, um maximale Grenzen für Elementgrößen festzulegen. Zum Beispiel:

.responsive-text {
font-size: min(5vw, 30px);
}

Dies setzt die Schriftgröße auf 5% der Viewport-Breite, aber niemals größer als 30 Pixel. Es ist eine großartige Möglichkeit, text responsive zu gestalten, ohne dass er auf großen Bildschirmen zu groß wird.

Die max() Funktion

Wie vermutet, tut max() das Gegenteil von min(). Sie gibt den größten Wert einer Liste zurück. Hier ist, wie Sie es möglicherweise verwenden:

.responsive-image {
width: max(300px, 50%);
}

Dies stellt sicher, dass ein Bild immer mindestens 300 Pixel breit ist, auch wenn 50% seines Behälters kleiner als das sind.

Die clamp() Funktion

Die clamp() Funktion ist wie eine Kombination aus min() und max(). Sie nimmt drei Werte: ein Minimum, einen bevorzugten Wert und ein Maximum. Hier ist ein Beispiel:

.responsive-element {
width: clamp(200px, 50%, 500px);
}

Dies setzt die Breite auf 50% des Behälters, stellt jedoch sicher, dass sie niemals kleiner als 200px oder größer als 500px ist.

Fortgeschrittene CSS-Mathematikfunktionen

Nun, da wir die Grundlagen abgedeckt haben, tauchen wir ein in einige fortgeschrittene Funktionen, die Ihre CSS-Fähigkeiten auf das nächste Level heben können.

Die abs() Funktion

Die abs() Funktion gibt den absoluten Wert einer Zahl zurück. Dies kann in Animationen oder wenn Sie sicherstellen möchten, dass ein Wert immer positiv ist, nützlich sein. Hier ist ein Beispiel:

.box {
transform: translateX(abs(var(--x)));
}

Dies würde das Element horizontal basierend auf dem Wert der --x benutzerdefinierten Eigenschaft verschieben, immer in die positive Richtung, unabhängig davon, ob --x positiv oder negativ ist.

Die round() Funktion

Die round() Funktion rundet eine Zahl auf den nächsten ganzen Wert. Dies kann nützlich sein, um Werte an ein Raster zu snapen. Zum Beispiel:

.grid-item {
width: calc(round(100% / 3));
}

Dies würde ein dreispaltiges Layout erstellen, bei dem die Breite jeder Spalte auf den nächsten ganzen Prozentsatz gerundet wird.

Stufige Wertefunktionen

Stufige Wertefunktionen ermöglichen es Ihnen, Werte in diskreten Schritten anstatt glatt zu ändern, was großartig für die Erstellung interessanter visueller Effekte sein kann.

Die mod() Funktion

Die mod() Funktion gibt den Rest nach der Division zurück. Dies kann verwendet werden, um wiederholende Muster zu erstellen. Hier ist ein Beispiel:

.striped-background {
background-color: hsl(0, 0%, mod(var(--i) * 10, 100)%);
}

Dies würde ein gestreiftes Hintergrundmuster erstellen, bei dem die Helligkeit jeder Streife von ihrem Index (--i) abhängt und alle 10 Streifen wiederholt wird.

Trigonometrische Funktionen

Zuletzt, aber nicht minder wichtig, schauen wir uns einige trigonometrische Funktionen an. Diese können äußerst leistungsfähig für die Erstellung komplexer Animationen und Layouts sein.

Die sin() und cos() Funktionen

Die sin() und cos() Funktionen geben die Sine und Kosinus eines Winkels zurück. Diese werden oft in Animationen verwendet. Hier ist ein einfaches Beispiel:

@keyframes orbit {
from {
transform: rotate(0deg) translateX(100px) rotate(0deg);
}
to {
transform: rotate(360deg) translateX(100px) rotate(-360deg);
}
}

.orbiting-element {
animation: orbit 5s linear infinite;
}

Dies erstellt eine Orbit-Animation, bei der ein Element in einem Kreis um einen Mittelpunkt bewegt wird.

Funktion Referenz-Tabelle

Hier ist eine schnelle Referenztabelle aller CSS-Mathematikfunktionen, die wir behandelt haben:

Funktion Beschreibung Beispiel
calc() Führt grundlegende Arithmetik durch calc(100% - 20px)
min() Gibt den kleinsten Wert zurück min(5vw, 30px)
max() Gibt den größten Wert zurück max(300px, 50%)
clamp() Clampt einen Wert zwischen Min und Max clamp(200px, 50%, 500px)
abs() Gibt den absoluten Wert zurück abs(var(--x))
round() Runde auf den nächsten ganzen Wert round(100% / 3)
mod() Gibt den Rest nach Division zurück mod(var(--i) * 10, 100)
sin() Gibt den Sinus eines Winkels zurück sin(45deg)
cos() Gibt den Kosinus eines Winkels zurück cos(45deg)

Und das war's! Wir haben viel Boden cobered, von grundlegender Arithmetik bis hin zu fortgeschrittenen trigonometrischen Funktionen. Denken Sie daran, der Schlüssel zum Beherrschen dieser Funktionen ist die Übung. Versuchen Sie, sie in Ihr CSS zu integrieren, experimentieren Sie mit verschiedenen Kombinationen, und bald werden Sie atemberaubende, responsive Designs mit Leichtigkeit erstellen. Viel Spaß beim Coden!

Credits: Image by storyset