Ich möchte ein ungerades Dreieck mit CSS erstellen. Mein erster Gedanke war, transparente Grenzen mit transform: rotate
zu verwenden und es funktionierte (siehe linkes Dreieck). Jetzt möchte ich ein Farbverlaufsrand-Bildmuster als Hintergrund für dasselbe Dreieck verwenden, aber ich kann es nicht funktionieren lassen. Ich habe versucht, viele Dinge wie border-width
, Wrapper und overflow:hidden
unter anderem zu ändern, hat nichts funktioniert. Hier veröffentliche ich einen meiner Versuche (siehe rechte Form), wenn Sie sehen, dass das Muster den ganzen Raum einnimmt und nicht der Dreiecksform folgt. Irgendwelche Ideen?Border-Bild-Gradientenmuster in Dreiecksform
#top-left {
position:absolute;
left:78px;
width: 0;
height: 0;
border-top: 100px solid transparent;
border-right: 80px solid black;
border-bottom: 50px solid transparent;
-webkit-transform: rotate(-20deg);
}
#top-right {
position:absolute;
left:300px;
width: 0;
height: 0;
border-image: repeating-linear-gradient(0deg, pink, pink 1%, purple 1%, purple 8%) 10;
border-image-width: 100px 80px 50px 0px;
border-width: 100px 80px 50px 0px;
border-style: solid;
-webkit-transform: rotate(-20deg);
}
<div id="wrapper">
<div id="top-left"></div>
<div id="top-right"></div>
</div>
Edit: Andrey Fedorov Antwort ist gut, aber es ist ein Problem, wenn der Hintergrund nicht eine Farbe ist, wie dies zum Beispiel:
body{
background-color: #6d695c;
background-image:
repeating-linear-gradient(120deg, rgba(255,255,255,.1), rgba(255,255,255,.1) 1px, transparent 1px, transparent 60px),
repeating-linear-gradient(60deg, rgba(255,255,255,.1), rgba(255,255,255,.1) 1px, transparent 1px, transparent 60px),
linear-gradient(60deg, rgba(0,0,0,.1) 25%, transparent 25%, transparent 75%, rgba(0,0,0,.1) 75%, rgba(0,0,0,.1)),
linear-gradient(120deg, rgba(0,0,0,.1) 25%, transparent 25%, transparent 75%, rgba(0,0,0,.1) 75%, rgba(0,0,0,.1));
background-size: 70px 120px;
}
#wrapper {
position: relative;
}
#top-left {
position:absolute;
left:0px;
\t width: 0;
\t height: 0;
\t border-top: 100px solid #fff;
\t border-right: 80px solid transparent;
\t border-bottom: 50px solid #fff;
-webkit-transform: rotate(-20deg);
}
#top-right {
position:absolute;
z-index: -10;
left:0;
width: 0;
height: 0;
border-image: repeating-linear-gradient(0deg, pink, pink 1%, purple 1%, purple 8%) 10;
border-image-width: 100px 80px 50px 0px;
border-width: 100px 80px 50px 0px;
border-style: solid;
-webkit-transform: rotate(-20deg);
}
<div id="wrapper">
<div id="top-left"></div>
<div id="top-right"></div>
</div>
Also, so das? http://codepen.io/8odoros/pen/kXpqvA?Editoren = 1100 nett! –
@ 8odoros Ja, das ist die Idee, Sie können auch Elemente einbetten und transformieren: http://codepen.io/gc-nomade/pen/OXEqog –
Ich behalte das sicherlich, es ist Berechnungen-schwer, aber ... nicht Ihre Schuld, aber eines meiner Hauptziele ist das Ändern der Muster über eine Benutzeroberfläche. –