使用纯css 绘制三角形
方法一 使用边框实现
- 先实现一个div 四个粗边框 不同颜色 保留左右和下边框 设置左右边框为颜色为 transparent
<body>
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
<div class="div4"></div>
</body>
<style>
.div1{
border-top: 80px solid red;
border-right: 80px solid blue;
border-bottom: 80px solid yellow;
border-left: 80px solid orange;
width: 100px;
height: 100px;
margin-top: 80px;
}
.div2{
border-top: 80px solid red;
border-right: 80px solid blue;
border-bottom: 80px solid yellow;
border-left: 80px solid orange;
width: fit-content;
margin-top: 80px;
}
.div3{
/* border-top: 80px solid red; */
border-right: 80px solid blue;
border-bottom: 80px solid yellow;
border-left: 80px solid orange;
width: fit-content;
margin-top: 80px;
}
.div4{
/* border-top: 80px solid red; */
border-right: 80px solid transparent;
border-bottom: 80px solid yellow;
border-left: 80px solid transparent;
width: fit-content;
margin-top: 80px;
}
</style>
方法二 linear-gradient 使用渐变背景
<body>
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
<div class="div4"></div>
<div class="div5"></div>
<div class="div6"></div>
</body>
<style>
.div1{
width: 80px;
height: 100px;
background-repeat: no-repeat;
outline: 1px solid blue;
margin-top: 40px;
}
.div2{
width: 80px;
height: 100px;
background-repeat: no-repeat;
outline: 1px solid blue;
background-image: linear-gradient(45deg, red 50%, rgba(255, 255, 255, 0) 50%);
margin-top: 40px;
}
.div3{
width: 80px;
height: 100px;
background-repeat: no-repeat;
outline: 1px solid blue;
background-image: linear-gradient(45deg, red 50%, rgba(255, 255, 255, 0) 50%);
background-size: 100% 50%;
margin-top: 40px;
}
.div4{
width: 80px;
height: 100px;
background-repeat: no-repeat;
outline: 1px solid blue;
background-image: linear-gradient(32deg, red 50%, rgba(255, 255, 255, 0) 50%);
background-size: 100% 50%;
margin-top: 40px;
}
.div5{
width: 80px;
height: 100px;
background-repeat: no-repeat;
outline: 1px solid blue;
background-image: linear-gradient(32deg, orangered 50%, rgba(255, 255, 255, 0) 50%), linear-gradient(148deg, orangered 50%, rgba(255, 255, 255, 0) 50%);
background-size: 100% 50%;
margin-top: 40px;
}
.div6{
width: 80px;
height: 100px;
background-repeat: no-repeat;
outline: 1px solid blue;
background-image: linear-gradient(32deg, orangered 50%, rgba(255, 255, 255, 0) 50%), linear-gradient(148deg, orangered 50%, rgba(255, 255, 255, 0) 50%);
background-position: top left, bottom left;
background-size: 100% 50%;
margin-top: 40px;
}
</style>
方法三 clip-path 最精简 但有浏览器兼容问题
<body>
<div class="div1"></div>
<div class="div2"></div>
</body>
<style>
.div1{
margin: 100px;
width: 160px;
height: 200px;
background-color: yellow;
margin-top: 80px;
}
.div2{
margin: 100px;
width: 160px;
height: 200px;
background-color: yellow;
clip-path: polygon(0 0, 0% 100%, 100% 50%);
margin-top: 80px;
}
</style>
标签:solid,top,50%,80px,background,三种,三角形,css,255
From: https://www.cnblogs.com/milankundea/p/18547893