clip-path 在实际中的运用

背景

上半年鸽了好多篇文章,心口一阵绞痛, 实在是忙, 最近也在搞绩效相关的事情,等这个月过完, 差很少就能定了,到时候再和你们好好交代交代。css

最近也没作什么系统性的总结, 为了保持手感,今天就先写个作业务的时候,用到的一个css属性: clip-path.web

正文

需求

设计小姐姐画了一个标签:segmentfault

image.png

从本来的镂空的设计(就是只有边框的那种), 改为了实心的。函数

本来镂空的实现方式是: 一个矩形, 而后用before, after 作两条线当头部, 一个标签就能搞定。学习

如今要作成实心儿的, 要用最小的修改, 实现这个效果,该怎么作呢?spa

瞬间,脑子里闪过了数种实现方式, 好比:设计

  • 矩形旁边再加个三角形
  • 用两个白色的三角形去盖一下
  • 背景裁剪

前两种方式是最早想到的, 但是脑补了一下, 以为好麻烦啊, 最好能一行代码搞定, clip-path 能知足这个想法。code

也去简单实现了一下:blog

image.png

代码:ip

clip-path: polygon(0 0, 70% 0, 100% 50%, 70% 100%, 0 100%);

每个点表明一个坐标, 只要设定好切割的坐标点, 就能获得咱们想要形状。 好比:

各类形状

几个属性

它的属性值包括四个:

  1. clip-source: 能够是内、外部的SVG的clipPath元素的URL引用;
  2. basic-shape: 使用一些基本的形状函数建立的一个形状。主要包括:

    • circle()
    • ellipse()
    • inset()
    • polygon()
  3. geometry-box: 是可选参数。
    此参数和basic-shape函数一块儿使用时,能够为basic-shape的裁剪工做提供参考盒子。
    若是geometry-box由自身指定,那么它会使用指定盒子形状做为裁剪的路径,包括任何(由border-radius提供的)的角的形状。

更详细的介绍能够参考MDN:
https://developer.mozilla.org...

最终效果

image.png

兼容性

img

IE 和 Edge 不支持这个属性,Firefox 仅部分支持 clip-path。
Chrome、Safari 和 Opera 须要使用 -webkit- 前缀支持此属性。

结语

最终,用一行代码实现了设计的效果, 省时省力。

最后的最后, 再跟你们简单说一下学习, 是我在学院听的一个分享。

image.png

平时要持续学习, 并内化到本身的知识体系中, 一个十分有效的作法就是: 实际运用起来,而不是仅仅停留在知道的层次, Get Yours Hands Dirty.

若是最初我不知道clip-path 这个属性, 大概就直接画三角形来实现了吧。

内容大概就这么多, 但愿对你们有所启发。

相关文章
相关标签/搜索