Streifen sind heutzutage ziemlich einfach in CSS zu machen. CSS-Verläufe über die background-image-Eigenschaft haben uns wirklich den Rücken gestärkt. Ich dachte, ich dokumentiere einige Variationen an einem einfach nachzuschlagenden Ort.
Normal farbige diagonale Streifen
Diagonale Streifen lassen sich dank repeating-linear-gradient() leicht erstellen.
background: repeating-linear-gradient(
45deg,
#606dbc,
#606dbc 10px,
#465298 10px,
#465298 20px
);
Anstatt dass der allerletzte Farb-Stopp 100 % (oder nichts, was 100 % bedeutet) ist, ist es ein fester Wert. Danach beginnt es irgendwie von vorne. So stelle ich es mir vor (herangezoomt)

Siehe den Pen epfEc von Chris Coyier (@chriscoyier) auf CodePen.
Verlauf-Diagonale Streifen
Wenn Sie den Hintergrund zu einem normalen linear-gradient() machen und dann die Hälfte der Streifen mit repeating-linear-gradient() komplett transparent machen, kann es so aussehen, als ob die Streifen Verläufe hätten. Aufgrund mehrerer Hintergründe (und der Stapelreihenfolge können Sie das alles auf einem einzigen Element kombinieren.
background:
/* On "top" */
repeating-linear-gradient(
45deg,
transparent,
transparent 10px,
#ccc 10px,
#ccc 20px
),
/* on "bottom" */
linear-gradient(
to bottom,
#eee,
#999
);
Siehe den Pen xhkpD von Chris Coyier (@chriscoyier) auf CodePen.
Streifen über Bild
Vielleicht eine Textur? Jedes Bild funktioniert. Sie könnten einen Teil des Bildes offenlegen, indem Sie einige Streifen vollständig transparent und andere vollständig opak machen. Oder jede Kombination. Wieder ermöglichen mehrere Hintergründe, dass all dies auf demselben Element geschieht.
background: repeating-linear-gradient(
45deg,
rgba(0, 0, 0, 0.2),
rgba(0, 0, 0, 0.2) 10px,
rgba(0, 0, 0, 0.3) 10px,
rgba(0, 0, 0, 0.3) 20px
),
url(http://s3-us-west-2.amazonaws.com/s.cdpn.io/3/[email protected]);
Siehe den Pen gaKyv von Chris Coyier (@chriscoyier) auf CodePen.
Beliebige Richtung, beliebiger Winkel
Es muss nicht genau 45 Grad sein. Das ist Teil der Schönheit von repeating-linear-gradient(). Es ist nicht wie dieses perfekte Rechteck, das sich ausrichten und wiederholen muss, es ist nur eine Reihe von Zeichenanweisungen, die sich wiederholen.
background: repeating-linear-gradient(
-55deg,
#222,
#222 10px,
#333 10px,
#333 20px
);
Siehe den Pen qfHmw von Chris Coyier (@chriscoyier) auf CodePen.
Gerade Streifen (etwas bessere Browserunterstützung)
Es gibt eine super alte Syntax für CSS-Verläufe, die -webkit-gradient() verwendete (beachten Sie das Fehlen von „linear“ oder „radial“). Grundsätzlich: Safari 4, Chrome 1-9, iOS 3.2-4.3, Android 2.1-3.0. Alte Sachen. Diese Browser unterstützen keine wiederholenden Verläufe. Aber man konnte es irgendwie vortäuschen, besonders bei geraden Streifen, indem man ein kleines Rechteck aus Hintergrund mit background-size erstellt, die Streifen darin zeichnet und es wie background-image wiederholen lässt.
background: linear-gradient(
to bottom,
#5d9634,
#5d9634 50%,
#538c2b 50%,
#538c2b
);
/* The rectangle in which to repeat.
It can be fully wide in this case */
background-size: 100% 20px;
Siehe den Pen uxJrf von Chris Coyier (@chriscoyier) auf CodePen.
Wenn Sie es verrückt treiben wollten, könnten Sie ein Element mit diesen geraden Streifen mit transform: rotate() drehen und den Überlauf abschneiden, um diagonale Streifen mit tieferer Browserunterstützung zu replizieren. Klingt nach viel Arbeit.
Vertikale Streifen
Sie könnten dieselbe Methode wie oben auch für vertikale Streifen verwenden. Oder einfach repeating-linear-gradient().
background: repeating-linear-gradient(
to right,
#f6ba52,
#f6ba52 10px,
#ffd180 10px,
#ffd180 20px
);
Siehe den Pen oCpEu von Chris Coyier (@chriscoyier) auf CodePen.
Nur zur Klarstellung: Mit repeating-linear-gradient() ist es am besten, auch ein -webkit-repeating-linear-gradient() zu verwenden, zusätzlich zum ungeprefixsten, wenn Sie, wissen Sie, prefixen, aber Sie sollten es nicht tun.
Radiale Streifen
Wer sagt denn, dass sie gerade Linien sein müssen, hm? Radiale Verläufe können repeating-linear-gradients() sein.
/* Note the RADIAL */
background: repeating-radial-gradient(
circle,
purple,
purple 10px,
#4b026f 10px,
#4b026f 20px
);
Siehe den Pen AEymd von Chris Coyier (@chriscoyier) auf CodePen.
Funky Town
Manchmal passieren Rundungsfehler (vielleicht?) oder andere Render-Funkereien.

Was willst du machen. Ich vermute, es wird mit der Zeit besser werden.
Update: Christopher Cohen schreibt dazu
Sie können den Funky Town besiegen, indem Sie prozentuale Stopps setzen und
background-sizeverwenden. Ich weiß nicht, ob Chrome einfach mit einer anderen Präzision für % vs px berechnet, aber ich habe festgestellt, dass dies mir wunderschön saubere Linien verschafft hat.Ein weiterer schneller Tipp; manchmal müssen Sie
background-attachment: fixedangeben, sonst ignoriert esbackground-position. Dies ist nützlich, wenn Sie Fortschrittsbalken usw. mit überlappenden, mit Verläufen gefüllten Boxen gestalten.
Siehe den Pen Repeating gradients von Christopher Cohen (@Jeevecore) auf CodePen.
Das wird langsam alt, aber es gibt immer noch diesen Artikel von Eric Meyer (Mai 2012) über die Hölle, die wiederholende lineare Verläufe sind: http://meyerweb.com/eric/thoughts/2012/05/30/repeating-linear-madness/.
Danke Chris, das ist zum Aufbewahren… und es dauerte nur fünf Minuten, bis mir gesagt wurde: „… tu das nicht“
Ich habe absichtlich versucht, diagonale Streifen ohne repeating-linear-gradients zu verwenden und einige seltsame Muster erhalten.
Gesehenes Muster
Dreiecksmuster
Pünktchenmuster
Zum ersten Bild. Der dort gezeigte Winkel ist nicht der Gradientenwinkel (der Winkel, der in der Gradientenfunktion erscheint), obwohl er in diesem Fall (
45deg) zufällig gleich ist (weil 90 – 45 = 45).Mit der aktuellen Standard-Syntax ist der Gradientenwinkel der Winkel zwischen der vertikalen Achse und der Gradientenlinie (der Linie, die die Richtung des Gradienten angibt). Ich denke, dieser Pen erklärt es besser, als ich es in Worte fassen kann (klicke auf Punkte, um einen neuen Gradientenwinkel auszuwählen, und der Wert in der Codebox unten sollte sich ebenfalls ändern).
Bezüglich gezackter Kanten bei scharfen Übergängen zwischen zwei Farben (entweder mit einem zufälligen Winkel für lineare Verläufe oder mit radialen Verläufen). IE scheint hier am besten zu funktionieren, besonders bei radialen Verläufen, bei linearen sind die Kanten nicht so glatt, obwohl sie immer noch besser aussehen als in anderen Browsern. Eine Sache, die bei IE und Firefox für mich immer funktioniert hat und manchmal auch in Chrome, war, 1 bis 3 Pixel Abstand zu lassen.
Etwas wie das
Pen (Kanten sehen in IE und Firefox schön glatt aus, aber Chrome wird wirklich seltsam).
Sicher, einfach zu machen… es sei denn, Sie möchten IE9 oder älter unterstützen. Und während die Unterstützung für Windows XP bald endet (so dass wir theoretisch IE8 ignorieren können), dauert die Unterstützung für Vista bis 2017 an, und Vista kann IE10 nicht installieren. Daher wird die IE9-Unterstützung wahrscheinlich noch eine Weile sinnvoll sein.
Vergessen wir nicht Leas Beispiele http://lea.verou.me/css3patterns/
Fabelhafte Ressource. Weckt Erinnerungen an all die Bitmap-Füllmuster auf dem Apple Macintosh meiner Familie aus den 1980er Jahren. (Ich bin mir nicht sicher, ob das unbedingt das Gefühl ist, das Sie auf einer Webseite der 2010er Jahre hervorrufen möchten, aber ich schätze, es hängt vom Thema ab!)
Wie immer großartig, Sir.
whhooaaooo…
Viel gelernt..
Auch Dank an @suprsidr
Einfach und hervorragend sind CSS-Muster, aber es ist ein alter Trick, können wir mehr mit Streifen machen?
Wir können auch mit Karomustern arbeiten, Transparenz und 2 Hintergrundebenen verwenden :D
Das ist großartig. Ich mag die Idee von repeating-linear-gradient, aber es rendert bei mir nie schön (oder inkonsistent). Vielleicht bin ich da etwas zu zwanghaft, aber die Variation in der Streifenbreite stört mich, ebenso wie die zufälligen Zacken, die es produziert. Es ist ziemlich geringfügig und ich bin sicher, die meisten Leute bemerken es nicht oder kümmern sich nicht darum, aber hat jemand eine Lösung dafür oder eine gängige Browser-/OS-Kombination gefunden, die besser rendert.
Ich erstelle sie mit einem einfachen linearen Verlauf. Scheint besser zu rendern. Vielleicht wird es in zukünftigen Browserversionen besser. Ich bin auf einem Mac Chrome 33.
codepen Beispiel
Gedanken?
Das klingt definitiv nach verrückt & viel Arbeit. Nehmen Sie Ihren Taschenrechner (oder vielleicht kann Ihr CSS-Präprozessor die Berechnungen für Sie durchführen) und ermitteln Sie den vertikalen und horizontalen Abstand zwischen Streifen derselben Farbe und verwenden Sie diesen für Ihre Hintergrundgröße.
Für 45 Grad bedeutet das
Für jeden anderen Winkel müssen Sie etwas Trigonometrie anwenden. Es hat eine Weile gedauert, bis ich die Gleichungen richtig hatte, aber sie lassen sich zusammenfassen als
http://codepen.io/AmeliaBR/pen/cBlAI?editors=110 für Beispiele und trigonometrische Diagramme.
Die einzige zusätzliche Komplikation ist, dass Sie Ihre Streifen mehrmals wiederholen müssen, um den Rest des Rechtecks zu füllen.
Das ist ein großartiger Artikel, wiederholende lineare Verläufe (besonders diagonale) sind ein verdammter Albtraum! Danke fürs Teilen, Chris!
Ich denke, dieses Buch wird viel über CSS helfen.
visueller Schnellstart-Leitfaden für CSS3
Toller Artikel Chris. Wirklich einfach, aber sehr effektiv. Lesezeichen gesetzt! Danke Laurence