css实现圆角三角形,圆角三角形的实现

news2025/1/23 4:44:23

今天给大家带来一个如何实现圆角三角形的方案,这个方案虽然可以实现,但是也是借助拼凑等方式来实现的,假如想一个div来实现圆角三角形,还是比较困难的。之前文章讲了如何实现对话框,里面介绍了三角形的实现方式。今天讲讲如何实现圆角三角形。

方案一:全兼容的 SVG 方案

想要生成一个带圆角的三角形,代码量最少、最好的方式是使用 SVG 生成。

使用 SVG 的 多边形标签 < polygon > 生成一个三边形,使用 SVG 的 stroke-linejoin="round" 生成连接处的圆角。

代码量非常少,核心代码如下:

<svg  width="250" height="250" viewBox="-50 -50 300 300">
  <polygon class="triangle" stroke-linejoin="round" points="100,0 0,200 200,200"/>
</svg>
.triangle {
    fill: #0f0;
    stroke: #0f0;
    stroke-width: 10;
}

通过 stroke-width 控制圆角大小 那么如何控制圆角大小呢?也非常简单,通过控制 stroke-width 的大小,可以改变圆角的大小。 当然,要保持三角形大小一致,在增大/缩小 stroke-width 的同时,需要缩小/增大图形的 width/height。

方案二:图形拼接

可以用正方形变成菱形,然后加圆角

div {
    width:  10em;
    height: 10em;
    transform: rotate(-60deg) skewX(-30deg) scale(1, 0.866);
   border-top-right-radius: 30%;
}

拼接 3 个带圆角的菱形

<style>
div{
    position: relative;
    background-color: orange;
    margin:50px auto;
}
div:before,
div:after {
    content: '';
    position: absolute;
    background-color: inherit;
}
div,
div:before,
div:after {
    width:  10em;
    height: 10em;
    border-top-right-radius: 30%;
}
div {
    transform: rotate(-60deg) skewX(-30deg) scale(1,.866);
}
div:before {
    transform: rotate(-135deg) skewX(-45deg) scale(1.414, .707) translate(0,-50%);
}
div:after {
    transform: rotate(135deg) skewY(-45deg) scale(.707, 1.414) translate(50%);
}
</style>
<div></div>

将上面代码放到html中,可以看到效果!

方案三:图形拼接实现渐变色圆角三角形

本质就是实现一个贝壳形状,然后通过旋转,伪类来实现,贝壳形状做个渐变就可以了。

代码如下:

<div></div>
<style>
     div {
    width: 200px;
    height: 200px;
    transform: rotate(30deg) skewY(30deg) scaleX(0.866);
    border-radius: 20%;
    margin-top:70px;
    overflow: hidden;
  border: unset;
}

div::before,
div::after {
    content: "";
    position: absolute;
    width: 200px;
    height: 200px;
}
div::before {
    border-radius: 20% 20% 20% 55%;
    background: #000;
  transform: scaleX(1.155) skewY(-30deg) rotate(-30deg) translateY(-42.3%) skewX(30deg) scaleY(0.866) translateX(-24%);
}
div::after {
    border-radius: 20% 20% 55% 20%;
    background: #000;
  transform: scaleX(1.155) skewY(-30deg) rotate(-30deg) translateY(-42.3%) skewX(-30deg) scaleY(0.866) translateX(24%);
}

div::before,
div::after {
    background: linear-gradient(#0f0, #03a9f4);
}
</style>

直接将上面代码放到html中,就可以看到效果了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/996401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用navicat for mongodb连接mongodb

使用navicat for mongodb连接mongodb 安装navicat for mongodb连接mongodb 安装navicat for mongodb 上文mongodb7.0安装全过程详解我们说过&#xff0c;在安装的时候并没有勾选install mongodb compass 我们使用navicat去进行可视化的数据库管理 navicat for mongodb下载地址…

秒杀“超卖”问题

概述&#xff1a;限时秒杀活动在我们的日常生活中有很多&#xff0c;尤其在“双11”&#xff0c;“618”这类购物节活动中用户的并发数更是海量剧增&#xff0c;那么系统为了防止“超卖”秒杀商品&#xff0c;怎么做才能不影响性能的同时防止超卖。 为了解决“超卖”问题有两种…

mysql或ps提示 vcruntime140_1.dll丢失如何修复,5种方法办法你搞定

今天我在运行一款新安装的软件时&#xff0c;突然遇到了一个让我十分困扰的问题——系统提示vcruntime140_1.dll文件丢失。这个问题导致我无法正常使用这个软件&#xff0c;我也不知道怎么回事&#xff0c;所以我在网上找了一天终于让我找到解决这个问题的方法了&#xff0c;今…

绩效只是绩效

绩效只是绩效 一、背景二、绩效和管理三、绩效和薪资四、QA环节五、总结与反思 一、背景 目前大部分主体的绩效考核方向不明确&#xff0c;有的只是为了考核而考核&#xff0c;那么绩效是什么&#xff1f; 打A&#xff08;超出预期&#xff09;和打D&#xff08;低于预期&…

阿里云ESC服务器CPU一直处于100%该如何排查?

阿里云ESC服务器CPU一直处于100%该如何排查&#xff1f; 问题背景 使用 docker 容器化部署整个项目&#xff0c;然后服务器的CPU一直处于100%&#xff0c;此时就出现了问题&#xff1a;此时如果重新开启一个窗口去连接&#xff0c;或者访问宝塔面板、Navicat连接MySQL就连接不…

使用redis+lua通过原子减解决超卖问题【示例】

文章目录 前言一、准备工作二、不使用Lua三、使用Lua 前言 超卖&#xff0c;即在并发的情况下&#xff0c;所售商品数量大于商品的库存数量。在并发量大的情况下&#xff0c;用户请求同时到达&#xff0c;对数据库进行操作&#xff0c;在没有采取相应的处理的情况时从而导致出…

第八章 Linux实际操作——定时任务调度

第八章 Linux实际操作——定时任务调度 8.1 crond任务调度8.1.1 概述8.1.2 基本语法8.1.3 常用选项8.1.4 快速入门8.1.5 应用实例8.1.6 crond相关指令 8.2 at定时任务8.2.1基本介绍8.2.2 at命令格式8.2.3 at命令选项8.2.4 at时间定义8.2.5 应用实例 8.1 crond任务调度 crontab…

Vulnhub系列靶机---HarryPotter-Nagini-哈利波特系列靶机-2

文章目录 信息收集主机发现端口扫描gobuster目录扫描dirsearch扫描joomscan扫描实现http3访问 漏洞利用Gopherus工具GetShell提权firefox_decrypt工具 总结 靶机文档&#xff1a;HarryPotter: Nagini 下载地址&#xff1a;Download (Mirror) 信息收集 主机发现 端口扫描 访问8…

生成克隆钓鱼网站与对win7进行后渗透操作

目录 目录 前言 系列文章列表 思维导图 1&#xff0c;实验涉及复现环境 2&#xff0c;CS的介绍 2.1,CS的简介 2.2,CS的主要功能 3&#xff0c;CS的安装 3.1,将cobalt_strike_4.5文件夹放到kali中 3.1,放入过程中的注意事项 3.2,如图所示 4,配置工具 4.1,进入c…

Kafka3.0.0版本——消费者(Sticky分区分配策略以及再平衡)

目录 一、Sticky分区分配策略原理二、Sticky分区分配策略 示例需求三、Sticky分区分配策略代码案例3.1、创建带有7个分区的sevenTopic主题3.2、创建三个消费者 组成 消费者组3.3、创建生产者3.4、测试3.5、Sticky分区分配策略代码案例说明 四、Sticky分区分配再平衡案例4.1、停…

机器人抓取检测技术的研究现状

1.分析法 图 1 为分析法在进行抓取检测时所采用的 一般策略[3] [3]Sahbani A, El-Khoury S, Bidaud P. An overview of 3D object grasp synthesis algorithms[J]. Robotics and Autonomous Systems, 2012, 60(3): 326-336. 首先,基于环境限制和机械手与物体模 型进行抓取检…

算法宝典——Java版本(持续更新)

目录 一、链表的算法题&#xff08;目前9道&#xff09; 1. 移除链表元素&#xff08;思路&#xff1a;前后指针&#xff09; 2. 反转一个单链表 &#xff08;思路&#xff1a;头插法&#xff09; 3. 链表的中间结点&#xff08;思路&#xff1a;快慢指针&#xff09; 4. 链…

衷心祝福“好教师”节日快乐

在2023年教师节的今天&#xff0c;本“人民体验官”推广人民日报官方微博文化产品《张桂梅说教师这个职业有苦有幸福》。 图&#xff1a;来源“人民体验官”推广平台 人民微博简述道&#xff1a;“今天&#xff0c;张桂梅祝全国老师们节日快乐。” 张桂梅说&#xff1a;“教师…

图像的几何变换(缩放、平移、旋转)

图像的几何变换 学习目标 掌握图像的缩放、平移、旋转等了解数字图像的仿射变换和透射变换 1 图像的缩放 缩放是对图像的大小进行调整&#xff0c;即 使图像放大或缩小 cv2.resize(src,dsize,fx0,fy0,interpolationcv2.INTER_LINEAR) 参数&#xff1a; src :输入图像dsize…

机构企业学员培训知识付费小程序开源版开发

机构企业学员培训知识付费小程序开源版开发 用户注册与登录&#xff1a;提供用户注册和登录功能&#xff0c;以便用户能够访问和使用小程序。个人信息管理&#xff1a;允许用户管理个人资料&#xff0c;包括修改个人信息和上传个人头像。课程浏览&#xff1a;提供课程列表&…

[技术讨论]讨论问题的两个基本原则——17年前的文字仍然有效

前两天又有人找我讨论问题&#xff0c;而且是他自己的项目&#xff0c;内容与我没有任何关系&#xff0c;他说的&#xff0c;却是讨论。 其实就是想来做咨询&#xff0c;又不想付费。 今天看到了十七年前写的这篇文字&#xff0c;就重发一下了&#xff0c;当然有少量文字修订&a…

【Java并发】聊聊ReentrantReadWriteLock锁降级和StampedLock邮戳锁

面试题 1.你说你用过读写锁&#xff0c;锁饥饿问题是什么&#xff1f; 2.有没有比读写锁更快的锁&#xff1f; 3.StampedLock知道吗?(邮戳锁/票据锁) 4.ReentrantReadWriteLock有锁降级机制策略你知道吗&#xff1f; 在并发编程领域&#xff0c;有多线程进行提升整体性能&…

c++ - 抽象类 和 多态当中一些问题

抽象类 纯虚函数 在虚函数的后面写上 0 &#xff0c;则这个函数为纯虚函数。 class A { public:virtual void func() 0; }; 纯虚函数不需要写函数的定义&#xff0c;他有类似声明一样的结构。 抽象类概念 我们把具有纯虚函数的类&#xff0c;叫做抽象类。 所谓抽象就是&a…

124个Python案例,完整源代码!

大家好&#xff0c;我是涛哥。 很多小伙伴为了掌握爬虫这门技术&#xff0c;投入了大量的时间和精力。他们在深夜里独自码字&#xff0c;他们在周末的时候熟读代码&#xff0c; 但独自学习&#xff0c;没有朋友的陪伴和指导&#xff0c;学习的过程就像是在一条无尽的道路上徘…

【多线程】wait 、notify 和 notifyAll 讲解

wait 、notify 和 notifyAll 讲解 一. wait二. wait 和 sleep 的对比三. notify四. notifyAll五. notify 与 notifyAll 的原理 由于线程之间是抢占式执行的, 因此线程之间执行的先后顺序难以预知. 但是实际开发中有时候我们希望合理的协调多个线程之间的执行先后顺序. 完成这个…