CSS:N种使⽤CSS绘制三⾓形的⽅法
⽬录
6种使⽤ CSS 实现三⾓形的技巧
1、使⽤ border 绘制三⾓形
使⽤ border 实现三⾓形应该是⼤部分⼈都掌握的,也是各种⾯经中经常出现的,利⽤了⾼宽为零的容器及透明的 border 实现。简单的代码如下:
div {
border-top: 50px solid yellowgreen;
border-bottom: 50px solid deeppink;
border-left: 50px solid bisque;
border-right: 50px solid chocolate;
}
⾼宽为零的容器,设置不同颜⾊的 border:
这样,让任何三边的边框的颜⾊为 transparent,则⾮常容易得到各种⾓度的三⾓形:
2、使⽤ linear-gradient 绘制三⾓形
接着,我们使⽤线性渐变 linear-gradient 实现三⾓形。
它的原理也⾮常简单,我们实现⼀个 45° 的渐变:
div {
width: 100px;
height: 100px;
background: linear-gradient(45deg, deeppink, yellowgreen);
}
让它的颜⾊从渐变⾊变为两种固定的颜⾊:
div {
width: 100px;
height: 100px;
background: linear-gradient(45deg, deeppink, deeppink 50%, yellowgreen 50%, yellowgreen 100%);
}
再让其中⼀个颜⾊透明即可:
div {
background: linear-gradient(45deg, deeppink, deeppink 50%, transparent 50%, transparent 100%);
}
3、使⽤ conic-gradient 绘制三⾓形
还是渐变,上述我们使⽤了线性渐变实现三⾓形,有意思的是,在渐变家族中,⾓向渐变 conic-gradient 也可以⽤于实现三⾓形。
⽅法在于,⾓向渐变的圆⼼点是可以设置的,类似于径向渐变的圆⼼点也可以被设置。
我们将⾓向渐变的圆⼼点设置于 50% 0,也就是 center top,容器最上⽅的中间,再进⾏⾓向渐变,渐变到⼀定的⾓度范围内,都是三⾓形图形。
假设我们有⼀个 200px x 100px ⾼宽的容器,设置其⾓向渐变圆⼼点为 50% 0:
并且,设置它从 90° 开始画⾓向渐变图,⽰意图如下:
可以看到,在初始的时候,⾓向渐变图形没有到第⼆条边的之前,都是三⾓形,我们选取适合的⾓度,⾮常容易的可以得到⼀个三⾓形:
div {
background: conic-gradient(from 90deg at 50% 0, deeppink 0, deeppink 45deg, transparent 45.1deg);
}
上述代码中的 deeppink 45deg, transparent 45.1deg 多出来的 0.1deg 是为了简单消除渐变产⽣的锯齿的影响,这样,我们通过 conic-gradient,也轻松的得到了⼀个三⾓形。
同理,再配合旋转 rotate 或者 scale,我们也能得到各种⾓度,不同⼤⼩的三⾓形。
4、transform: rotate 配合 overflow: hidden 绘制三⾓形
这种⽅法还是⽐较常规的,使⽤ transform: rotate 配合 overflow: hidden。⼀看就懂,⼀学就会,简单的动画⽰意图如下:
设置图形的旋转中⼼在左下⾓ left bottom,进⾏旋转,配合 overflow: hidden。
完整的代码:
.triangle {
width: 141px;
height: 100px;
position: relative;
overflow: hidden;
&::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: deeppink;
transform-origin: left bottom;
transform: rotate(45deg);
}
}
5、使⽤ clip-path 绘制三⾓形
clip-path ⼀个⾮常有意思的 CSS 属性。
clip-path CSS 属性可以创建⼀个只有元素的部分区域可以显⽰的剪切区域。区域内的部分显⽰,区域外的隐藏。剪切区域是被引⽤内嵌的URL 定义的路径或者外部 SVG 的路径。
也就是说,使⽤ clip-path 可以将⼀个容器裁剪成任何我们想要的样⼦。
通过 3 个坐标点,实现⼀个多边形,多余的空间则会被裁减掉,代码也⾮常简单:
div {
background: deeppink;
clip-path: polygon(0 0, 100% 0, 0 100%, 0 0);
}
6、利⽤字符绘制三⾓形
OK,最后⼀种,有些独特,就是使⽤字符表⽰三⾓形。
下⾯列出⼀些三⾓形形状的字符的⼗进制 Unicode 表⽰码。
◄ : ◄
► : ►
▼ : ▼
▲ : ▲
⊿ : ⊿
△ : △
譬如,我们使⽤ ▼ 实现⼀个三⾓形 ▼,代码如下:
<div class="normal">▼ </div>
div {
cssclass属性font-size: 100px;
color: deeppink;
}
效果还是不错的:
然⽽,需要注意的是,使⽤字符表⽰三⾓形与当前设定的字体是强相关的,不同的字体绘制出的同⼀个字符是不⼀样的,我在Google Font 上随机选取了⼏个不同的字体,分别表⽰同⼀个字符,得到的效果如下:
可以看到,不同字体的形状、⼤⼩及基线都是不⼀样的,所以如果你想使⽤字符三⾓形,确保⽤户的浏览器安装了你指定的字体,否则,不要使⽤这种⽅式。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论