svg clipPath的clipPathUnits和相对路径转换
clipPathUnits 属性用来指定<clipPath>元素内容的坐标系,有2种取值:
clipPathUnits = "userSpaceOnUse | objectBoundingBox"
clipPathUnits = "userSpaceOnUse | objectBoundingBox"
userSpaceOnUse表示当前网页所使用的屏幕坐标系
objectBoundingBox则把坐标空间的原点调整到被裁剪对象的左上角,坐标空间的长宽设定为该元素的长宽
通常工具生成的svg路径,都是基于userSpaceOnUse的,并且还可能带一些变换(如位移和缩放)
<g transform="translate(0.000000,126.000000) scale(0.100000,-0.100000)"><clipPath>
而在CSS3直接引用clipPath时,不会自动去处理这些变换,需要我们自己来处理,直接引用进行裁切是达不到效果的
.element { clip-path: url(#svgClipPathID); }
需要将基于userSpaceOnUse的路径,转换为基于objectBoundingBox的路径,即将 绝对路径 转换为 相对路径
做法是把path数据转换成百分比或小数(小数更短一些,含义相同,都是相对单位),然后给clipPath添加clipPathUnits="objectBoundingBox"属性来自适应
<svg width="0" height="0"> <defs> <clipPath id="svgPath" clipPathUnits="objectBoundingBox"> <!-- your paths here --> </clipPath> </defs> </svg>
转换可以使用此 工具
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-06-21 对象池简单实现