Nahtlose Texturen sind hervorragende CSS-Hintergründe. Ein einzelnes kleines Bild kann durch Kachelung einen gesamten Viewport abdecken und einer Seite visuelle Tiefe ohne große Hero-Bilder verleihen. Die korrekte Implementierung ist jedoch entscheidend: Eine schlecht optimierte Hintergrundtextur kann hunderte Kilobytes zum Seitengewicht hinzufügen und Layout-Verschiebungen beim Laden verursachen. Dieser Leitfaden behandelt die technischen Details der Verwendung nahtloser Texturen in CSS.
CSS-Eigenschaften für kachelnde Texturen
Das Kern-CSS für einen gekachelten Hintergrund ist unkompliziert:
- background-image — Auf
url('/texture.webp')gesetzt, zeigt auf Ihr nahtloses Bild. - background-repeat — Auf
repeatgesetzt (der Standard). Der Browser kachelt das Bild in beide Richtungen. Verwenden Sierepeat-xoderrepeat-yfür einseitige Kachelung. - background-size — Steuert die Größe jeder Kachel. Eine 512-px-Textur bei
background-size: 256px 256pxkachelt mit der halben nativen Größe und erzeugt ein dichteres Muster. Lassen Sie diese Eigenschaft weg, um in nativer Auflösung zu kacheln. - background-attachment — Verwenden Sie
scroll(Standard) für normales Verhalten. Vermeiden Siefixedauf Mobile — es erzwingt Compositing auf dem Main-Thread und verursacht Ruckeln im iOS Safari.
Bildformatauswahl
WebP
WebP sollte Ihr Standardformat für CSS-Hintergrundtexturen sein. Es unterstützt sowohl verlustbehaftete als auch verlustfreie Komprimierung, ist 25–35 % kleiner als PNG mit äquivalenter Qualität und hat universelle Browserunterstützung (97%+ globale Abdeckung). Eine 512-px-nahtlose Textur komprimiert zu 15–40 KB in verlustbehaftetem WebP bei Qualität 80, gegenüber 60–150 KB als PNG.
PNG
Verwenden Sie PNG nur, wenn Sie verlustfreie Wiedergabetreue oder Transparenz (Alpha-Kanal) benötigen. PNG ist für fotografische oder verlaufslastige Texturen deutlich größer als WebP. Für einfache Muster mit wenigen Farben (Schachbretter, Raster) kann PNG aufgrund seiner effizienten Handhabung von Flachfarbbereichen mit WebP konkurrieren.
JPEG
JPEG hat keine Transparenz und führt sichtbare Komprimierungsartefakte um harte Kanten ein, was es zu einer schlechten Wahl für Texturen mit scharfen Details macht. Für weiche, organische Texturen (Wolken, Rauschen, Verläufe) kann JPEG bei Qualität 75–80 jedoch kleiner als WebP bei akzeptabler Qualität sein. Unterstützung ist universell.
AVIF
AVIF bietet die besten Komprimierungsraten (40–50 % kleiner als WebP), hat aber langsamere Dekodierzeiten und unvollständige Browserunterstützung. Verwenden Sie es als progressive Enhancement über das <picture>-Element, wenn Sie Texturen als <img>-Tags bereitstellen. Für CSS-Hintergründe ist eine WebP-Fallback-Kette einfacher.
Dateigrößenziele
Für Hintergrundtexturen streben Sie diese Dateigrößen an:
- Unter 30 KB — Ideal. Lädt in einem einzelnen TCP-Roundtrip auf den meisten Verbindungen. Vernachlässigbare Auswirkung auf das Gesamtseitengewicht.
- 30–50 KB — Akzeptabel. Immer noch schnell auf Breitband; ziehen Sie Lazy Loading auf Mobile in Betracht.
- 50–100 KB — Nur verwenden, wenn die Textur kritische Above-the-Fold-Inhalte sind. Lazy Load wenn below the fold.
- Über 100 KB — Zu groß für einen sich wiederholenden Hintergrund. Reduzieren Sie Auflösung, erhöhen Sie Komprimierung oder vereinfachen Sie das Muster.
CSS-Only-Muster vs. Bild-Texturen
CSS-Verläufe können einfache Muster erstellen — Streifen, Punkte, Schachbretter — ohne Netzwerkanfragen. Ein sich wiederholender linearer Verlauf mit harten Farbstopps erzeugt scharfe Streifen. Radiale Verläufe erzeugen Punktmuster. Diese sind auflösungsunabhängig und extrem leichtgewichtig.
CSS-Muster können jedoch organische Texturen wie Rauschen, Marmor oder Papier-Körnung nicht replizieren. Für alles jenseits geometrischer Muster ist eine kleine Bildtextur der bessere Ansatz. Der Sweet Spot ist ein 256–512-px-nahtloses Bild unter 30 KB.
Dark-Mode-Überlegungen
Hintergrundtexturen müssen oft für den Dark Mode angepasst werden. Eine helle Papiertextur auf einem dunklen Hintergrund wirkt verstörend. Optionen sind:
- Separate Texturen — Stellen Sie eine dunkle Variante mit
prefers-color-scheme: darkin einer Media Query oder CSS Custom Properties bereit. - CSS-Filter-Overlay — Wenden Sie
filter: invert(1)oderfilter: brightness(0.3)auf ein Pseudo-Element an, das den Hintergrund trägt, um ein einzelnes Bild-Asset zu erhalten. - Reduzierte Deckkraft — Verwenden Sie eine sehr subtile Textur (
opacity: 0.05), die als Rausch-Overlay auf hellen und dunklen Hintergründen funktioniert.
Lazy Loading und Performance
CSS-Hintergrundbilder können das loading="lazy"-Attribut nicht verwenden (das gilt nur für <img> und <iframe>). Um eine Hintergrundtextur lazy zu laden, verwenden Sie die Intersection Observer API, um eine CSS-Klasse, die die background-image-Regel enthält, erst hinzuzufügen, wenn das Element in den Viewport tritt. Für Above-the-Fold-Hintergründe laden Sie das Bild mit <link rel="preload" as="image" href="/de/texture.webp"> vorab, um den Download frühzeitig zu starten.
Durchsuchen Sie die Texturbibliothek oder generieren Sie ein leichtgewichtiges Muster mit dem Geometrisches-Muster- oder Raster-Generator — beide liefern saubere, dateikleinegroße Ergebnisse, ideal für Webhintergründe.