Kros的博客 Kros的博客
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云

Kros

凡心所向,素履以往,生如逆旅,一苇以航
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云
  • CSS

    • CSS绘制三角形
    • CSS排版上下文
    • CSS伪类
    • CSS伪元素
    • CSS实现列表元素分割线
    • CSS使用skew
    • CSS让物体居中
    • CSS绘制太极图
    • CSS使用实体替代预留符号
    • 动态修改after或before的content
    • CSS旋转border
    • CSS绘制空心五角星
    • CSS时钟
    • CSS图片手风琴伸缩效果
    • CSS的选择器
    • CSS波浪border
    • CSS内切圆角
    • CSS文字环绕
    • CSS outline使用详解
    • CSS使用transform缩放scale不生效
    • CSS使用linear-gradient或生成虚线
    • CSS 图片srcset属性
    • CSS object-fit属性详解
    • CSS 使用filter对颜色就行处理
    • CSS选择器的优先级
    • css与scss文件引入问题
    • CSS实现圆角梯形
    • 使用filter实现聚光灯效果
    • 利用backface-visibility hidden实现3d翻转双面card
    • 正方体3d旋转
    • 修改浏览器自动填充的背景颜色
    • CSS修改选中文字颜色
    • CSS实现打字机效果
    • marquee文字弹跳
    • logo文字图片倒影
    • 纯CSS实现popup弹窗
    • ie兼容inline-block
    • 浏览器默认样式
    • CSS效果-文字
    • CSS效果-按钮
    • css3 transition属性对linear-gradient渐变色无效
    • 不同预处理器下的样式穿透
    • 属性顺序
    • CSS重绘与回流
    • img标签与before和after
    • CSS实现文本两端对齐
    • CSS filter的contrast属性和blur属性奇特的结合
    • CSS不常用属性记录
    • CSS sprite雪碧图制作与使用
  • JavaScript

  • 工具

  • Vue

  • antdv踩坑记录

  • Vue3

  • 前端
  • CSS
kros
2020-11-18

CSS绘制三角形

# 使用border绘制三角形

html中没有三角形标签,css也没有三角形属性。但熟悉css的border属性的人,如果border够宽就会形成类型三角形的东西。如下例子 :

.border-half {
  width: 50px;
  height: 50px;
  border-top: 50px solid red;
  border-right: 50px solid black;
  border-bottom: 50px solid purple;
  border-left: 50px solid green;
}
1
2
3
4
5
6
7
8

border-half

上面每个方向的border很接近三角形了,如果盒子的宽高为0,那么border就是完全的三角形。如下:

.border-full {
  width: 0;
  height: 0;
  border-top: 100px solid red;
  border-right: 100px solid black;
  border-bottom: 100px solid purple;
  border-left: 100px solid green;
}
1
2
3
4
5
6
7
8

border-full

如果只保留一个方向的border就会得到一个三角形,这里只例举了左边其它方向是一样的道理。如下:

.triangle .left {
  border-top: 80px solid transparent; //与三角形方向的相邻的两个方向可以改变三角形形状
  border-bottom: 80px solid transparent;
  border-left: 80px solid green; //需要的方向上必须有颜色
}
.triangle .left1 {
  border-top: 0 solid transparent;
  border-bottom: 50px solid transparent;
  border-left: 80px solid green;
}

.triangle .left2 {
 border-top: 50px solid transparent;
   border-bottom: 50px solid transparent;
   border-left: 70px solid green;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

triangle

# 使用clip-path裁剪三角形

除了使用border绘制三角形我们还可以使用clip-path裁剪出三角形

.filter-tri {
  width: 100px;
  height: 100px;
  background: green;
  clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
}
1
2
3
4
5
6

# 使用mask遮罩裁剪三角形

.mask-tri {
  width: 100px;
  height: 100px;
  background: green;
  mask: linear-gradient(45deg, #fff 0, #fff 50%, transparent 50%, transparent 100%)
}
1
2
3
4
5
6

本编文章的代码都在示例 中,有需要请前往获取。

#CSS
上次更新: 2025/09/05, 8:09:00
CSS排版上下文

CSS排版上下文→

最近更新
01
Find the next perfect square
09-05
02
Regex validate PIN code
09-05
03
Find the odd int
09-05
更多文章>
Theme by Vdoing | Copyright © 2020-2025 kros king
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
icon-heart-o icon-heart icon-infinity icon-pause icon-play link next prev