搜索
首页web前端css教程剪裁,剪裁和更多剪裁!

Clipping, Clipping, and More Clipping!

CSS clip-path 属性的妙用:探索多种创意技巧及应用案例。本文将分享一系列使用 clip-path 属性实现的有趣效果,希望能激发您在项目中应用或进行创意尝试。

这已经是笔者在 CSS-Tricks 上发表的第三篇关于 clip-path 的文章了,如果您想了解背景知识,可以先阅读以下文章:

  • 使用 CSS clip-path 创建交互式效果
  • 使用 CSS clip-path 创建交互式效果,第二部分

本文将介绍全新的创意!

创意一:双重裁剪

一个巧妙的技巧是多次使用 clip-path 来裁剪内容。这听起来可能很明显,但实际上很少有人用到这个概念。

例如,让我们来看一个展开的菜单:

clip-path 只能应用于单个 DOM 节点一次。一个节点不能同时拥有多个相同 CSS 规则的活动实例,这意味着每个实例只有一个 clip-path。但是,组合裁剪节点的次数没有上限。例如,我们可以将一个裁剪的 <div> 放置在另一个裁剪的 <code><div> 内,以此类推。在 DOM 节点的祖先关系中,我们可以应用任意多个独立的裁剪。这正是上面演示中所做的。我让一个裁剪的节点填充另一个裁剪的节点。父节点充当边界,子节点在缩放时填充父节点。这会产生一种不寻常的效果,即出现一个圆角菜单。可以将其视为 <code>overflow: hidden 的一种高级方法。

当然,您可以认为 SVG 更适合此目的。与 clip-path 相比,SVG 能够实现更多功能。其中包括平滑缩放。如果 clip-path 完全支持贝塞尔曲线,情况就会有所不同。但在撰写本文时,情况并非如此。无论如何,clip-path 非常方便。一个节点,一个 CSS 规则,您就可以开始了。就上面的演示而言,clip-path 完成了这项工作,因此是一个可行的选择。

我制作了一个简短的视频来解释菜单的内部工作原理:

创意二:缩放裁剪路径

另一个(不太明显)的技巧是使用 clip-path 进行缩放。我们实际上可以使用 CSS 过渡来动画化 clip-path

过渡系统在其构建方式上令人惊叹。在我看来,它的加入是近年来 Web 技术发展中最大的飞跃之一。它支持各种不同值的过渡。clip-path 属于我们可以动画化的可接受值。动画通常意味着在两个极值之间进行插值。对于 clip-path,这意味着在两个完整不同的路径之间进行插值。这就是 Web 精细的动画系统展现其优势的地方。它不仅适用于单个值,也适用于动画化值集。

在动画化 clip-path 时,每个坐标都会单独进行插值。这一点很重要。它使 clip-path 动画看起来连贯流畅。

让我们来看一下演示。点击图像以重新启动效果:

在这个演示中,我使用了 clip-path 过渡。它用于从覆盖一个小区域的一个 clip-path 缩放至另一个巨大的 clip-pathclip-path 的最小版本远小于分辨率——换句话说,应用时肉眼不可见。另一个极值略大于视口。在这个缩放级别,没有可见的裁剪,因为所有裁剪都发生在可见区域之外。在这两个不同的 clip-path 之间进行动画会产生有趣的效果。被裁剪的形状在缩放时似乎会显示其背后的内容。

您可能已经注意到,该演示使用了不同的形状。在这种情况下,我使用了流行运动鞋品牌的徽标。这能让您了解在更真实的场景中效果如何。

同样,这里还有一个视频详细讲解了技术细节:

创意三:裁剪叠加层

另一个想法是使用 clip-path 创建高亮效果。例如,假设我们想使用 clip-path 来创建一个菜单的活动状态。

上面的裁剪路径在动画时会延伸到不同的菜单选项之间。此外,我们使用了一个有趣的形状来使 UI 更突出。

该演示使用了相同内容的修改副本,其中副本位于现有内容的顶部。它与菜单位于完全相同的位置,并用作活动状态。从本质上讲,它看起来像菜单的任何其他常规活动状态。不同之处在于它是使用 clip-path 创建的,而不是使用 HTML 元素上的花哨 CSS 样式。

使用 clip-path 可以在这里创建一些不寻常的效果。倾斜的形状是一方面,但我们也获得了拉伸效果。菜单有两个独立的裁剪——一个在左边,一个在右边——这使得可以使用过渡延迟以不同的时间来动画化裁剪。结果是一个非常轻松的拉伸动画。由于默认缓动是非线性的,延迟会导致轻微的橡皮筋效果。

这里的第二个技巧是根据方向应用延迟。如果活动状态需要向右移动,则右侧需要首先开始动画,反之亦然。我通过使用一点 JavaScript 来根据点击应用正确的类来获得方向感知。

创意四:扇形切片

您在 Web 上看到圆形展开菜单的频率有多高?荒谬,对吧!?好吧,clip-path 不仅使它成为可能,而且相当简单。

我们通常看到的菜单包含以单行甚至下拉菜单形式排列的链接,就像我们之前看到的第一个技巧一样。我们在这里做的是将这些链接放在弧形而不是矩形中。当然,使用矩形是传统的方法。这里的想法是探索更友好的移动交互,并牢记两个具体的 UX 原则:

  • 一个清晰的目标,用拇指轻松点击
  • 更改发生在焦点附近——您视觉焦点所在的位置

该演示并非专门针对 clip-path。我只是碰巧使用 clip-path 来创建笔。再次,就像之前的可展开菜单演示一样,这是一个方便的问题。使用 clip-path 和 50% 的边框半径,我立即获得了所需的弧线。

创意五:切换按钮

切换按钮总是让像我们这样的 Web 开发人员惊叹不已。似乎每周都会有人介绍一种新的切换按钮解释。好吧,这是我的:

该演示是 Oleg Frolov 的 Dribbble 截图的重制版。它结合了本文中介绍的所有三种技术。这些是:

  • 双重裁剪
  • 缩放裁剪路径
  • 裁剪叠加层

所有这些开关似乎都有一个共同点。它们由椭圆形背景和一个圆圈组成,类似于真实的机械开关。此切换按钮的工作方式是放大圆形容器内的圆形 clip-path。容器通过 overflow: hidden 裁剪内容,即双重裁剪。

演示的另一个关键部分是在标记中使用两个交替版本。它们是原始版本及其阴阳反转镜像副本。使用两个版本而不是一个版本是,冒着重复的风险,一个方便的问题。使用两个版本,我们只需要为第一个版本创建过渡。然后,我们可以将其大部分内容重复用于第二个版本。在过渡结束时,切换按钮切换到相反的版本。由于反转版本与之前的结束状态相同,因此无法发现变化。此技术的优点是重复使用动画的部分内容。缺点是在中断动画时会出现卡顿。当用户在动画完成之前按下切换按钮时,就会发生这种情况。

让我们再次看看幕后:

结语

您可能会想:探索是一回事,但生产呢?我可以在我目前正在处理的网站上使用 clip-path 吗?它准备好投入生产了吗?

好吧,这个问题没有简单的答案。除其他事项外,还有两个问题需要仔细研究:

  1. 浏览器支持
  2. 性能

在撰写本文时,根据 caniuse,大约有 93% 的浏览器支持。我认为我们正处于大规模采用的边缘。请注意,此数字考虑了 WebKit 前缀。

还有 IE 的论点,但这对我来说真的不算什么论点。我看不出为 IE 额外努力有什么意义。您应该为不安全的浏览器创建变通方法吗?您的用户最好使用现代浏览器。当然,有一些罕见的情况需要考虑遗留问题。但在这些情况下,您可能根本不会考虑使用现代 CSS。

那么性能呢?好吧,随着事情的增加,性能会变得棘手,但我不会说有什么会阻止我们今天使用 clip-path。始终衡量的性能才是重要的。平均而言,clip-path 造成的性能影响可能比其他 CSS 规则更大。但请记住,我们在这里介绍的做法是建议,而不是法律。将它们视为建议。养成衡量性能的习惯。

继续吧,将您的网页切成碎片。看看会发生什么!

以上是剪裁,剪裁和更多剪裁!的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
捍卫三元声明捍卫三元声明Apr 22, 2025 am 11:25 AM

几个月前,我正在使用黑客新闻(就像一个人一样),并且遇到了一篇(现已删除的)文章,内容涉及不使用if语句。如果您是这个想法的新手(就像我

使用网络语音API进行多语言翻译使用网络语音API进行多语言翻译Apr 22, 2025 am 11:23 AM

自科幻小说以来,我们就幻想着与我们交谈的机器。今天这很普遍。即便如此,制造的技术

JetPack Gutenberg块JetPack Gutenberg块Apr 22, 2025 am 11:20 AM

我记得当古腾堡被释放到核心时,因为那天我在WordCamp我们。现在已经过去了几个月,所以我想我们越来越多的人

在VUE中创建可重复使用的分页组件在VUE中创建可重复使用的分页组件Apr 22, 2025 am 11:17 AM

大多数Web应用程序背后的想法是从数据库中获取数据,并以最佳方式将其呈现给用户。当我们处理数据时

使用'盒子阴影”和剪辑路径一起使用'盒子阴影”和剪辑路径一起Apr 22, 2025 am 11:13 AM

让我们对您可以做一些有意义的事情做一些逐步的情况,但是您仍然可以用CSS欺骗来完成它。在这个

关于MailTo:链接关于MailTo:链接Apr 22, 2025 am 11:04 AM

您可以制作花园品种锚点()打开一封新电子邮件。让我们在此功能上进行一些旅程。它非常易于使用,但是

它非常酷它非常酷Apr 22, 2025 am 11:03 AM

这里的小供认:当我第一次看到Netlify CMS一目了然时,我想:很酷,也许我有一天会在我探索一个新项目的CMS时尝试一下。然后

用珀西测试视觉回归用珀西测试视觉回归Apr 22, 2025 am 11:02 AM

这是测试的艰巨任务

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器