CSS clip-path 生成器,免费

选择形状预设、调整滑块,然后复制 CSS clip-path 代码。

形状类型

实时预览

生成的 CSS

使用方法

  1. 选择形状类型:多边形、圆形、椭圆或 inset(可选圆角的矩形)。
  2. 拖动控制点:在预览区移动形状的手柄,精确自定义遮罩区域。
  3. 复制 CSS:生成的 clip-path 属性值可直接粘贴到您的样式表中。

为什么使用 CSS clip-path 生成器?

CSS clip-path 通过遮罩定义区域之外的内容来创建非矩形形状。常用于斜角分节符、六边形图像裁剪、自定义按钮形状、创意悬停效果以及遮罩式图像展示。手写多边形 clip-path 坐标需要计算每个顶点的百分比 , 既繁琐又难以可视化。这款交互式生成器让您可视化地拖动控制点,并即时得到精确的 CSS 值。

功能特性

常见问题

clip-path 会影响可点击区域吗?

会。默认情况下,只有遮罩区域内的指针事件会被记录 , 被遮挡的区域既不可见也无法点击。若想元素可视遮罩但仍可全面点击,请在该元素上使用 pointer-events: all 或叠加一个透明层。

可以为 clip-path 设置动画吗?

可以,clip-path 支持 CSS 过渡和动画。在两个点数相同的多边形之间动画时会产生流畅的形状变化效果。点数不同的形状之间会跳变而非插值过渡。

所有浏览器都支持 clip-path 吗?

所有现代浏览器都支持 clip-path。对于通过 url(#id) 语法使用 SVG 形状,支持度更广。基本的 polygon、circle、ellipse 和 inset 值在 Chrome、Firefox、Safari 和 Edge 上普遍有效。

CSS clip-path 的真正作用

CSS clip-path 属性将元素遮罩为所选形状:形状内的所有内容可见,形状外的所有内容变为透明。元素的布局框不变(仍占据相同的矩形用于边距折叠、流式布局和兄弟元素定位),但只有裁剪区域内的像素被绘制。这使 clip-path 不同于裁剪(永久改变图像)和不同于定位(移动事物):clip-path 是在显示时应用的遮罩,就在像素到达屏幕之前。

有四个基本形状函数:polygon()(一系列顶点的百分比或像素坐标)、circle()(半径加一个中心)、ellipse()(两个半径加一个中心)和 inset()(从每个边缘测量的矩形,可选择圆角)。对于过于复杂而无法使用这四个的形状(不规则曲线、带凹陷凸缘的星星、书法风格的轮廓),clip-path 也通过 path() 接受 SVG 路径或通过 url(#id) 引用 SVG <clipPath> 元素。浏览器绘制元素,然后通过你的形状定义的 alpha 遮罩进行合成。

clip-path 对现代 Web 设计很重要,因为它实现了十年前需要图像编辑器才能实现的形状。对角线分区分隔符、六边形头像裁剪、人字形横幅、星形照片:现在全部可以用纯 CSS 实现,可缩放到任何大小,悬停时可动画,并且可访问,因为底层元素仍然是 HTML,而不是栅格化图像。权衡是冗长:为一个简单的菱形手写 polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%) 是可行的,但 12 顶点的星星或自定义徽标镂空在没有可视化编辑器的情况下是不切实际的。这就是这个生成器的用武之地。

本工具的幕后运作

预览是一个 div,应用了你选择的 clip-path 作为内联 CSS,在每次拖动控制手柄时更新。手柄是绝对定位的圆形,覆盖在预览顶部每个顶点的百分比坐标处。当你拖动手柄时,JavaScript 捕获 mousemove(或 touchmove)事件,将像素位置转换为预览区域的百分比,更新内存中的多边形顶点,并重新应用 clip-path 字符串。实时渲染意味着你在拖动时看到形状变化,而不是之后。

生成的 CSS 通过将顶点连接成多边形字符串构造:多边形模式的 polygon(x1% y1%, x2% y2%, ...),或较简单形状类型的 circle(r% at cx% cy%)ellipse(rx% ry% at cx% cy%)inset(top right bottom left round radius)。使用百分比值而不是像素值是因为百分比会自动随元素缩放:在 300x200 时看起来正确的多边形在 600x400 时也看起来正确,无需更改 CSS。代码框在每次交互时更新,复制 CSS 按钮将当前值写入剪贴板。

没有任何东西离开你的浏览器。预览、形状计算、CSS 生成和剪贴板复制都是客户端 JavaScript。不发出网络请求;不上传任何图像;不分析你的形状选择。该工具除了首次加载时提供的静态 HTML 和 JavaScript 之外,没有任何后端。使用期间打开浏览器的网络选项卡,你会看到初始页面加载后零请求。你生成的 CSS 是你的,可以粘贴到任何样式表中。

CSS 裁剪简史

真实世界的工作流

常见陷阱及其含义

隐私:一切都在你的浏览器中运行

CSS 生成器工具传统上分为两个阵营:带有客户端 JavaScript 的简单 HTML 页面(私密、快速、无需账户)和带有云保存项目的完整功能编辑器(协作的,但每次形状编辑都会记录在其他人的服务器上)。这个工具坚定地处于第一阵营。你拖动的多边形坐标、你选择的颜色、你复制的 CSS:所有都保留在浏览器会话中,从不发送到任何地方。刷新页面,状态消失,除非你先复制了 CSS。

隐私含义主要对专有工作很重要。设计代理机构为机密品牌重新设计的自定义按钮形状原型设计、开发未公开游戏 UI 的独立开发者、为仍在 NDA 下的产品设计布局的企业团队:任何形状本身或其迭代历史可能泄漏正在进行的工作信息的环境。使用此工具,这些风险都不存在,因为没有捕获任何东西。在拖动手柄时打开浏览器的网络选项卡,你会看到零出站请求。

什么时候另一个工具是正确选择

更多常见问题

我可以为顶点坐标使用百分比或像素吗?

两者都可以。百分比随元素的框缩放,因此以百分比定义的多边形在元素调整大小时保持其比例形状。像素是绝对的,因此带有像素坐标的多边形无论元素如何都保持相同的大小。对应该随布局调整大小的形状使用百分比(大多数情况),对需要精确像素位置的形状使用像素(例如,与特定设计元素对齐)。你也可以混合使用:polygon(50% 10px, 100% 50%, ...) 是有效的。

clip-path 会影响 SEO 或屏幕阅读器吗?

不会。clip-path 仅是视觉属性。底层 HTML 完全可访问:裁剪元素内的文本仍然被搜索引擎索引、仍然被屏幕阅读器宣布、仍然可通过键盘导航选择。使用 clip-path 进行视觉样式设计;不要将其用作语义隐藏内容的方式(这需要 display: nonearia-hidden 属性)。视觉裁剪的内容仍然存在于可访问性树中。

如何使 clip-path 响应式?

使用百分比而不是像素,并在不同的断点检查结果。对于在移动设备与桌面设备上需要不同比例的形状,使用 CSS 媒体查询交换 clip-path 值:在 @media (max-width: 768px) 中为移动形状声明不同的 clip-path。对于复杂的响应式需求(例如,在移动设备上变为圆形的多边形),考虑使用 JavaScript 根据窗口大小重新计算 clip-path,尽管纯 CSS 方法处理大多数情况。

clip-path 可以应用于视频和 iframe 吗?

可以。clip-path 适用于任何 HTML 元素,包括 <video><iframe>。遮罩在元素级别应用,因此裁剪为六边形的视频在该六边形内播放。视频控件(显示时)也被裁剪,这可能会无意中隐藏播放/暂停按钮;如果你需要在裁剪区域外可见控件,请将视频包装在容器元素中。

多边形顶点的最大数量是多少?

CSS 标准没有规定正式限制。实际上,浏览器处理具有数百个顶点的多边形而没有渲染错误,但性能随顶点数下降,尤其是对于动画 clip-path。对于大多数装饰形状,目标是 3 到 12 个顶点;如果你需要更多复杂性,切换到 SVG path() 以获得更清晰的创作和类似的性能特征。超过 50 个顶点,clip-path 变得更难手动维护,SVG 编辑器工作流程更有意义。

我可以裁剪文本而不仅仅是图像和框吗?

可以。clip-path 也适用于文本元素,像任何其他元素一样遮罩它们。视觉效果是「透过形状偷窥的文本」。对于更复杂的文本形状效果(例如,使用文本轮廓作为图像的裁剪遮罩),将 clip-path 与 background-clip: text 结合使用,后者使用文本形状本身作为元素背景的裁剪区域。常见模式:带有仅在文本形状内部可见的渐变背景的大文本。

相关工具