当前位置: 首页 > news >正文

css使用clip-path属性切割显示可见内容

1. 需求

想要实现一个渐变的箭头Dom,不想使用svg、canvas去画,可以考虑使用css的clip-path属性切割显示内容。

2. 实现

<div class="arrow">箭头
</div>
.arrow{width: 200px;height: 60px;background-image: linear-gradient(45deg, #1e90ff, #00bfff);position: relative;clip-path: polygon(0% 0%, 80% 0%, 90% 50%, 80% 100%, 0% 100%, 10% 50%);line-height: 60px;text-align: center;color: white;
}

3. 效果

在这里插入图片描述

4. 讲解

clip-pathCSS 属性使用裁剪方式创建元素的可显示区域。区域内的部分显示,区域外的隐藏。

用于裁剪的值有三种类型,分别是basic-shapeclip-sourcegeometry-box

类型解释
basic-shape使用基本形状函数来定义裁剪路径。
clip-source可以是一个URL,指向一个SVG中的<clipPath>元素。
geometry-box如果与<basic-shape>一起使用,则它定义了<basic-shape>相对的盒子模型;
单独使用时,它使用指定的盒子作为裁剪路径。

注意:这是说该属性的用于裁剪的值有三种类型,不是指具体的值是这三种。

4.1 使用盒子属性裁剪

/* <geometry-box> values */
clip-path: margin-box;
clip-path: border-box;
clip-path: padding-box;
clip-path: content-box;
clip-path: fill-box;
clip-path: stroke-box;
clip-path: view-box;

4.2 常用的基本形状函数

/* <basic-shape> values */
clip-path: inset(100px 50px);	/* 矩形裁剪路径 */
clip-path: circle(50px at 0 100px);	/* 圆形裁剪路径 */
clip-path: ellipse(50px 60px at 10% 20%);	/* 椭圆裁剪路径 */
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);	/* 多边形裁剪路径 */

也可以按照svg的path裁剪。

clip-path: path("M0.5,1 C0.5,1,0,0.7,0,0.3 A0.25,0.25,1,1,1,0.5,0.3 A0.25,0.25,1,1,1,1,0.3 C1,0.7,0.5,1,0.5,1 Z"
);

4.3 组合使用 geometry-boxbasic-shape

/* Box and shape values combined */
clip-path: padding-box circle(50px at 0 100px);

4.4 使用 SVG 定义裁剪路径

通过引用一个SVG内的<clipPath>元素来定义更复杂的裁剪路径。

<svg width="0" height="0"><defs><clipPath id="myClip"><circle cx="50" cy="50" r="50"/></clipPath></defs>
</svg>
.example {clip-path: url(#myClip);
}

注意:使用前注意浏览器兼容性,比较早的浏览器未必支持。

求关注
在这里插入图片描述

相关文章:

  • 【深度学习】Transformer 的应用
  • Python的collections模块:数据结构的百宝箱
  • OSA实战笔记二
  • ESP8266-12S开发板控制IO控制输出-走马灯---学习系列,含代码
  • 联合索引失效情况分析
  • Windows 安装Anaconda
  • 小米便签源码部署流程
  • python 提交 命令到远程windows服务器并获取作业进程id
  • RabbitMQ Topic RPC
  • MS16-075 漏洞 复现过程
  • 小区服务|基于Java+vue的小区服务管理系统(源码+数据库+文档)
  • Java NIO(New I/O)
  • 【实验增效】5 μL/Test 高浓度液体试剂!Elabscience PE Anti-Mouse Ly6G抗体 简化流式细胞术流程
  • 连续空间链式推理与SoftCoT++介绍
  • 邂逅Node.js
  • IEEE 802.1Q协议下封装的VLAN数据帧格式
  • 如何管理和优化内核参数
  • CNBC专访CertiK联创顾荣辉:从形式化验证到AI赋能,持续拓展Web3.0信任边界
  • matlab编写的BM3D图像去噪方法
  • 深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第三篇:Verilog实现I2C Master核
  • 德国放弃长期以来的反核立场,寻求修复德法合作关系
  • 海南保亭警方通报“两飞车党紧追女童”:两名初中生认错道歉
  • 梅花奖在上海|秦海璐:演了15年《四世同堂》,想演一辈子
  • 《缶翁的世界》首发:看吴昌硕等湖州籍书画家的影响
  • 意德首脑会谈,梅洛尼警告欧盟绿色政策面临“工业荒漠化”
  • 大学2025丨北大教授陈平原:当卷不过AI时,何处是归途