Zick-Zack-Linien mit CSS3
Mit CSS-Verläufen können ZickZack-Muster unkompliziert hergestellt werden, ohne dass eine Grafik verwendet werden muss.
Es gehört zu den Standard-Disziplinen eines Webdesigners den Übergang zwischen verschiedenen Seitenbereichen attraktiv zu gestalten. Ein häufig gesehenes Stil-Element ist dabei die Zick-Zack-Linie, die insbesondere im Retro-Look und in Verbindung mit Ribbons gerne eingesetzt wird. Normalerweise wird dafür ein grafisches Pattern gestaltet und horizontal gekachelt, doch es geht auch mit CSS3.
Zick-Zack-Linie: Photoshop vs. CSS3
In vielen Bereichen ersetzt CSS3 die Arbeit mit Photoshop. Doch es gibt immer Vor- und Nachteile, die es abzuwägen gilt.
Vorteile
- Schnellere Umsetzung
- Performanter, da keine Grafik geladen werden muss
Nachteile
- Optisch nicht so detailliert wie eine Lösung mit Hilfe einer Grafik
- Wird nur in modernen Browsern angezeigt. Alte Browser zeigen einen geraden Übergang.
Live-Demo
Die nachfolgende Abbildung ist ein Live-Beispiel. Wenn ihr keine Zick-Zack-Linie seht, unterstützt euer Browser keine CSS3 Gradients und/oder background-size
.
HTML/CSS3-Code
Mit folgendem Code lässt sich der Übergang realisieren. In HTML wird nur ein Container-Element benötigt.
<div id="demo"></div>
In CSS arbeiten wir hauptsächlich mit dem Pseudoelement ::before
und einem darin enthaltenen CSS Gradient. Mit Gradienten (Verläufen) können verschiedene Muster erzeugt werden – so auch das ZickZack-Muster.
body {
background: #b29e7f;
margin: 0;
}
#demo {
width: 100%;
height: 150px;
position: relative;
background: #045B76;
}
#demo::before {
content: '';
position: absolute;
bottom: -30px;
left: 0;
right: 0;
height: 60px;
background-size: 24px 48px;
background-repeat: repeat-x;
background-image: -webkit-linear-gradient(45deg, transparent 34%, #045B76 34%, #045B76 66%, transparent 66%), -webkit-linear-gradient(315deg, transparent 34%, #045B76 34%, #045B76 66%, transparent 66%);
background-image: -moz-linear-gradient(45deg, transparent 34%, #045B76 34%, #045B76 66%, transparent 66%), -moz-linear-gradient(315deg, transparent 34%, #045B76 34%, #045B76 66%, transparent 66%);
background-image: linear-gradient(45deg, transparent 34%, #045B76 34%, #045B76 66%, transparent 66%), linear-gradient(315deg, transparent 34%, #045B76 34%, #045B76 66%, transparent 66%);
}
Kann ich den Effekt bei einem Div-Container auch oben und unten anwenden ?
servus miteinand,
Danke für diese Erläuterung, und dem Beispiel Code. Da ich gerade an einem Projekt arbeite, wo der Hintergrund eine Pinnwand ist, kommt dieser Code super an.
Ich habe eine Frage dazu.
Wie bekomme ich das umgekehrt hin (dass die Zacken oben sind)? Beiße mir gerade die Zähne dran aus. Ich habe den Code in der php Datei doppelt eingefügt. Aber statt demo habe ich es „oben“ umbenannt.
Gruß Alexander
Hallo Alexander, der Effekt basiert auf einem linearen CSS-Farbverlauf. Drehe hier einfach die Winkel.
servus Jonas,
Danke für die schnelle Antwort. Ich habe unterdessen das etwas anders gelösst.Statt diesen code
#oben {
width: 100%;
height: 150px;
position: relative;
background: #045B76;
}
habe ich diesen genommen.
#oben {
width: 100%;
height: 20px;
position: relative;
background: rgb(4, 91, 118);
margin-top: -20px;
margin-bottom: 20px;
}
Jetzt nur noch die Farben ändern und alles sollte perfekt sein.
Ja, alles OK :D
Gruß Alexander
[…] der Farben sollten dabei gezackt sein. Eine Lösung hierfür hatte ich schon einmal beim Kulturbanausen mit linear-gradient gesehen. Hier die Umsetzung: #css3gezackt { /* body */ text-align: center; […]
Muss es nicht heißen #demo:before?
Beide Schreibweisen funktionieren und sind korrekt.
Super Tipp! So etwas kann man gebrauchen. Vielen Dank!
Sind die beiden Seiten in der CSS mit -webkit und -moz wirklich erforderlich?
Ist ja cool^^ Danke für den Hinweis :)
[…] Zick-Zack-Linien mit CSS3 […]
Genialer Tipp, sowas habe ich mich schon öfters gefragt wie ich solche Zick-Zack-Muster erstellen kann, mit einfachen Mitteln und vor allem so das ich als Laie das auch hinbekomme. :)
Danke dafür, wird dann zu gegebener Zeit ReBloggt. :D
Hallo Stefan, vielen Dank für dein Feedback und den Hinweis auf den Rechtschreibfehler :) Ist alles korrigiert.