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

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);
}

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

求关注
在这里插入图片描述
http://www.lryc.cn/news/2380538.html

相关文章:

  • 新京东,正在成为一种生活方式
  • Linux 文件(2)
  • 分析 redis 的 exists 命令有一个参数和多个参数的区别
  • 《具身智能机器人:自修复材料与智能结构设计的前沿探索》
  • Java 10IO流
  • @ColorRes和@ColorInt什么区别
  • 基于Springboot + vue3实现的工商局商家管理系统
  • 【Java ee初阶】HTTP(2)
  • idea本地debug断点小技巧
  • 21. 自动化测试框架开发之Excel配置文件的测试用例改造
  • 避开封禁陷阱:动态IP在爬虫、跨境电商中的落地实践
  • python-leetcode 69.最小栈
  • YOLO中model.predict方法返回内容Results详解
  • CF每日4题(1300-1400)
  • golang学习大全
  • falsk模型-flask_sqlalchemy增删改查
  • K8S详解(5万字详细教程)
  • STL编程之vector
  • BI是什么意思?一文讲清BI的概念与应用!
  • [ 计算机网络 ] 深入理解TCP/IP协议
  • 微软开放代理网络愿景
  • UDP三种通信方式
  • 4-5月份,思科,华为,微软,个别考试战报分享
  • 计算机网络-HTTP与HTTPS
  • 信号波形发生器电路Multisim仿真
  • 深入解析Java微服务架构:Spring Boot与Spring Cloud的整合实践
  • 医学影像辅助诊断系统开发教程-基于tensorflow实现
  • 前端单点登录
  • Spring AI 介绍
  • onlyoffice 源码 调试说明 -ARM和x86双模式安装支持