css怎么绘制一个三角形

说在前面

🎈在CSS中画三角形通常利用border属性来实现,通过设置三个边的宽度为0,并为一个边提供颜色,结合transform属性进行旋转,可以创建一个三角形。以下是几种常见的CSS三角形的实现方法:

方法1:使用border

html 复制代码
<div class="triangle"></div>
<style>
.triangle {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 50px 100px 50px;
  border-color: transparent transparent red transparent;
}
</style>

上面代码中,.triangle类创建了一个红色的三角形,其中border-width定义了三角形的三个宽度,最后一个宽度定义了三角形的底边,其他三个宽度设置为0,以形成三角形的尖角。border-color定义了三角形的颜色,除了底边颜色外,其他三个颜色设置为transparent(透明)。得到的三角形如下:

方法2:使用clip-path

html 复制代码
<div class="triangle-clip"></div>
<style>
.triangle-clip {
  clip-path: polygon(50% 0, 0 100%, 100% 100%);
  height: 100px;
  width: 100px;
  background-color: red;
}
</style>

上面代码中,.triangle-clip类使用clip-path属性来裁剪元素,形成一个三角形。polygon函数定义了三角形的三个顶点。得到的三角形如下:

方法3:使用:before伪元素

html 复制代码
<div class="triangle-before"></div>
<style>
.triangle-before::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 50px 100px 50px;
  border-color: transparent transparent red transparent;
}
</style>

上面代码中,.triangle-before::before伪元素创建了一个红色的三角形,其中border-width定义了三角形的三个宽度,最后一个宽度定义了三角形的底边,其他三个宽度设置为0,以形成三角形的尖角。border-color定义了三角形的颜色,除了底边颜色外,其他三个颜色设置为transparent(透明)。得到的三角形如下:

方法4:使用::after伪元素

html 复制代码
<div class="triangle-after"></div>
<style>
  .triangle-after::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 50px 100px 50px;
    border-color: transparent transparent red transparent;
  }
</style>

上面代码中,.triangle-after::after伪元素创建了一个红色的三角形,其中border-width定义了三角形的三个宽度,最后一个宽度定义了三角形的底边,其他三个宽度设置为0,以形成三角形的尖角。border-color定义了三角形的颜色,除了底边颜色外,其他三个颜色设置为transparent(透明)。得到的三角形如下:

方法5:使用svg

html 复制代码
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
  <polygon points="50,0 100,100 0,100" fill="red" />
</svg>

得到的三角形如下: 在上面代码中,SVG的poygon元素用于创建一个三角形,points属性定义了三角形的三个顶点。得到的三角形如下: l

方法6:使用绝对定位+伪元素

html 复制代码
<div class="position-triangle"></div>
<style>
.position-triangle {
  position: relative;
  overflow: hidden;
  height: 100px;
  width: 100px;
}
.position-triangle::after {
  content: "";
  position: absolute;
  width: 200px;
  height: 200px;
  background: red;
  transform: rotate(45deg);
  transform-origin: center;
  top: 50%;
}
</style>

这个需要我们自己调整容器和伪元素的宽高、角度及定位来形成我们想要的三角形,上面代码得到的三角形如下:

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

相关推荐
huwuhang5 分钟前
跨平台电子书阅读器 | Readest最新版 安卓版+PC版全平台
android·前端·javascript
C澒5 分钟前
AI 生码:RAG 检索优化实现可评估、可回溯工程化
前端·ai编程
条tiao条7 分钟前
不止语法糖:TypeScript Set 与 Map 深度解析
前端·javascript·typescript
freewlt28 分钟前
React Server Components 深度解析:从原理到实战的完整指南
前端·javascript·react.js
ZC跨境爬虫1 小时前
Playwright进阶操作:鼠标拖拽与各类点击实战(含自定义拖拽实例)
前端·爬虫·python·ui
小江的记录本1 小时前
【RabbitMQ】RabbitMQ核心知识体系全解(5大核心模块:Exchange类型、消息确认机制、死信队列、延迟队列、镜像队列)
java·前端·分布式·后端·spring·rabbitmq·mvc
心静财富之门1 小时前
《前端零基础入门:HTML + CSS + JavaScript 全套速查表(详细版 + 实例)》
前端·javascript·python
星空1 小时前
前端--A_4--HTML表单
前端
We་ct1 小时前
JS手撕:DOM操作 & 浏览器API高频场景详解
开发语言·前端·javascript·面试·状态模式·操作·考点
小江的记录本1 小时前
【RocketMQ】RocketMQ核心知识体系全解(5大核心模块:架构模型、事务消息两阶段提交、回查机制、延迟消息、顺序消息)
linux·运维·服务器·前端·后端·架构·rocketmq