Karte: CSS-Math

CSS Math

Die geheimen Zahlenformeln des Stylesheets

Stell dir vor, du wärst ein Zauberer der Mathematik, der mühelos Zahlen in magische Layouts verwandelt. Mit den neuen math-Funktionen im CSS kannst du genau das tun – und mehr! Einst mussten Webentwickler mühsam Pixel zählen und Abstände per Hand anpassen. Jetzt aber kannst du mit CSS-Rechenfunktionen deine Layouts dynamisch und flexibel gestalten.

Willst du Abstände auf Basis der Bildschirmgröße berechnen? Oder vielleicht ein Element auf magische Weise proportional anpassen? Mit CSS math bringst du deine Webseite auf das nächste Level. Kein Ratespiel mehr – nur klare, präzise Zahlenzauberei! Lass uns nun die grundlegenden mathematischen Funktionen kennenlernen, die deine Layouts mit purer Berechnungsmacht füllen.

Rechnen mit Stil

Dynamische Größen, flexible Abstände, präzise Berechnungen – weil Mathe auch schön sein kann!

Token: calc

calc()

Der Allrounder-Zauber

Wenn du CSS-Zahlen berechnen willst, dann ist calc() dein bester Freund. Diese Funktion ermöglicht es dir, verschiedene Einheiten und Werte miteinander zu kombinieren, egal ob Pixel, Prozent, Em-Werte, was auch immer! Du kannst Höhen und Breiten dynamisch berechnen und komplexe Berechnungen für Margins und Paddings anstellen.

.container {
    width: calc(100% - 50px);
}

Hier nutzt du calc(), um die Breite der .container auf 100% des übergeordneten Elements minus 50 Pixel zu setzen.

Token: Prozent

Prozent und Einheiten

Die Kunst der flexiblen Berechnung

Einfach mal Prozent und feste Einheiten wie Pixel zu mischen, war lange Zeit kompliziert. Aber mit calc() kannst du diese Magie ohne Mühe entfesseln. Jetzt kannst du Pixel mit Prozentwerten kombinieren und deine Layouts dynamisch gestalten.

.sidebar {
    width: calc(100% - 200px);
}

Diese Berechnung sorgt dafür, dass die sidebar immer 100% der Breite minus 200 Pixel einnimmt.

Token: min - max

min() und max()

Der Wächter der Grenzen

Mit min() und max() kannst du Ober- und Untergrenzen für deine CSS-Werte festlegen. Das ist besonders nützlich, wenn du möchtest, dass deine Webseite auf verschiedenen Geräten gut aussieht, ohne zu klein oder zu groß zu werden.

.box {
    width: min(50%, 600px);
    padding: max(10px, 2%);
}

Mit min() stellst du sicher, dass die Box entweder 50% der Bildschirmbreite oder maximal 600px breit ist – je nachdem, welcher Wert kleiner ist. Mit max() legst du fest, dass das Padding mindestens 10px oder 2% der Bildschirmbreite beträgt, was auch immer größer ist.

Token: clamp

clamp()

Die goldene Mitte finden

clamp() ist der Meister der Ausgewogenheit. Er kombiniert den minimalen, maximalen und bevorzugten Wert in einer einzigen Funktion. So kannst du garantieren, dass dein Element immer die perfekte Größe hat, egal auf welchem Gerät.

h1 {
    font-size: clamp(1rem, 2vw + 1rem, 2.5rem);
}

Mit clamp() legst du fest, dass die Schriftgröße eines h1 niemals kleiner als 1rem und niemals größer als 2.5rem sein soll, aber innerhalb dieses Rahmens dynamisch mit der Bildschirmgröße wächst.

Token: Kombiniere math

Kombiniere

Kombinationen für komplexe Layouts

Mit calc(), min(), max() und clamp() kannst du extrem präzise Layouts bauen, die sich dynamisch an den verfügbaren Raum anpassen. Hier ein Beispiel für die Kombination mehrerer Funktionen:

.container {
    width: clamp(300px, 50%, 800px);
    height: calc(100vh - 100px);
}

Die Breite der .container liegt immer zwischen 300px und 800px, wächst aber dynamisch auf bis zu 50% des Bildschirms. Die Höhe beträgt stets die gesamte Bildschirmhöhe minus 100px.

CSS
/* Stile für die schattige Festung von Umbra */

/* Dynamische Größe für die Box */
.box {
    width: calc(100% - 40px);
    /* Breite = 100% des Elternelements minus 40px */
    height: calc(50vh - 50px);
    /* Höhe = 50% der Bildschirmhöhe minus 50px */
}

/* Min- und Max-Werte für den Container */
.container {
    width: max(600px, min(100%, 300px));
    /* Nie kleiner als 600px, aber passt sich an */
}

/* Responsive Schriftgröße für h1 */
h1 {
    font-size: clamp(1.5rem, 5vw, 3rem);
    /* Mindestens 1.5rem, maximal 3rem, flexibel mit 5vw */
}
Nach oben scrollen