我想用css创建一个奇形的三角形。我的第一个想法是使用透明边框与transform: rotate
,它的工作(见左三角)。现在我想使用渐变边框图像作为同一个三角形的背景,但我无法使其工作。我尝试了很多东西,如更换border-width
,使用包装和overflow:hidden
等,没有任何工作。在这里,我发布了其中一个尝试(请参阅右侧形状),因为您看到该模式占用了所有空间,而不是遵循三角形形状。有任何想法吗?三角形的边框图像渐变图案
#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>
编辑:安德烈·费奥多罗夫的回答是不错的,但有一个问题,当背景不是纯色,像这样的例子:
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>
所以,像这样?http://codepen.io/8odoros/pen/kXpqvA?编辑= 1100好! –
@ 8odoros是的,这是想法,你也可以增加元素和使用变换:http://codepen.io/gc-nomade/pen/OXEqog –
我当然保持这一点,它是计算沉重,虽然...不是你的错,但我的主要目标之一是通过UI改变模式。 –