|
|
1
Temani Afif
7 年前
对于第二个,您可以简单地使用多个渐变在每个角创建4个背景。你可能会注意到颜色应该停在50%或更少,因为诀窍是要有一种三角形的形状。
.box {
margin:5px;
width:300px;
height:200px;
background:
linear-gradient(to bottom right,#FF1794 0%, #FFF037 7.41%, #39ED94 13.72%, #00B0EC 25.23%, #FF1794 34.56%, #FFF037 40.76%, #39ED94 50%) bottom right,
linear-gradient(to bottom left, #FF1794 0%, #FFF037 7.41%, #39ED94 13.72%, #00B0EC 25.23%, #FF1794 34.56%, #FFF037 40.76%, #39ED94 50%) bottom left,
linear-gradient(to top left, #FF1794 0%, #FFF037 7.41%, #39ED94 13.72%, #00B0EC 25.23%, #FF1794 34.56%, #FFF037 40.76%, #39ED94 50%) top left,
linear-gradient(to top right, #FF1794 0%, #FFF037 7.41%, #39ED94 13.72%, #00B0EC 25.23%, #FF1794 34.56%, #FFF037 40.76%, #39ED94 50%) top right;
background-size:50% 50%;
background-repeat:no-repeat;
}
<div class="box"></div>
对于第一个元素,可以考虑伪元素和
clip-path
. 伪元素将与主元素在相反方向上具有相同的渐变,然后
剪辑路径
从每边切两个三角形:
.box {
margin:5px;
width:300px;
height:200px;
background:
linear-gradient(to right, #FF1794 0%, #FFF037 14.81%, #39ED94 27.72%, #00B0EC 50.23%, #FF1794 67.56%, #FFF037 81.76%, #39ED94 100%) right,
linear-gradient(to left, #FF1794 0%, #FFF037 14.81%, #39ED94 27.72%, #00B0EC 50.23%, #FF1794 67.56%, #FFF037 81.76%, #39ED94 100%) left;
background-size:50% 100%;
background-repeat:no-repeat;
position:relative;
}
.box:before {
content:"";
position:absolute;
background:
linear-gradient(to bottom,#FF1794 0%, #FFF037 14.81%, #39ED94 27.72%, #00B0EC 50.23%, #FF1794 67.56%, #FFF037 81.76%, #39ED94 100%) bottom,
linear-gradient(to top, #FF1794 0%, #FFF037 14.81%, #39ED94 27.72%, #00B0EC 50.23%, #FF1794 67.56%, #FFF037 81.76%, #39ED94 100%) top;
background-size:100% 50%;
background-repeat:no-repeat;
top:0;
bottom:0;
right:0;
left:0;
-webkit-clip-path: polygon(0% 0%, 50% 50%, 0% 100%, 100% 100%, 50% 50%, 50% 50%, 100% 0%);
clip-path: polygon(0% 0%, 50% 50%, 0% 100%, 100% 100%, 50% 50%, 50% 50%, 100% 0%);
}
<DIV class=“box”></DIV>
移动伪元素,您将清楚地了解技巧:
.box {
margin:5px;
width:300px;
height:200px;
background:
linear-gradient(to right, #FF1794 0%, #FFF037 14.81%, #39ED94 27.72%, #00B0EC 50.23%, #FF1794 67.56%, #FFF037 81.76%, #39ED94 100%) right,
linear-gradient(to left, #FF1794 0%, #FFF037 14.81%, #39ED94 27.72%, #00B0EC 50.23%, #FF1794 67.56%, #FFF037 81.76%, #39ED94 100%) left;
background-size:50% 100%;
background-repeat:no-repeat;
position:relative;
}
.box:before {
content:"";
position:absolute;
background:
linear-gradient(to bottom,#FF1794 0%, #FFF037 14.81%, #39ED94 27.72%, #00B0EC 50.23%, #FF1794 67.56%, #FFF037 81.76%, #39ED94 100%) bottom,
linear-gradient(to top, #FF1794 0%, #FFF037 14.81%, #39ED94 27.72%, #00B0EC 50.23%, #FF1794 67.56%, #FFF037 81.76%, #39ED94 100%) top;
background-size:100% 50%;
background-repeat:no-repeat;
top:0;
bottom:0;
right:0;
left:0;
-webkit-clip-path: polygon(0% 0%, 50% 50%, 0% 100%, 100% 100%, 50% 50%, 50% 50%, 100% 0%);
clip-path: polygon(0% 0%, 50% 50%, 0% 100%, 100% 100%, 50% 50%, 50% 50%, 100% 0%);
animation:move 2s infinite alternate linear;
}
@keyframes move{
to {transform:translate(100%)}
}
<div class="box">
</div>
|