CSS和SVG中的剪切——clip-path属性和<clipPath>元素
CSS和SVG有很多共同之处。CSS有很多特性都是从SVG中引入过来的。其中就有“剪切”的特性。CSS和SVG都允许我们对一个元素进行非矩形的剪切。在这篇文章中,将介绍CSS和SVG中的剪切技术。
CSS和SVG有很多共同之处。CSS有很多特性都是从SVG中引入过来的。其中就有“剪切”的特性。CSS和SVG都允许我们对一个元素进行非矩形的剪切。在这篇文章中,将介绍CSS和SVG中的剪切技术。
剪裁和遮罩都是用来隐藏元素的一些部分、显示其他部分的。当然了,这两者还是有区别的。区别主要在于这几方面:他们能做的东西,不同的语法,涉及到的不同技术,是新的还是旧的,以及浏览器支持的差异。但不幸的是总是有相当多的过时信息在那儿,所以一起来看看能否解决这个问题。
species-in-pieces网站的效果让前端人员眼前一亮,我在微博上发了这样的效果,聚集了不少同学的讨论。在大知乎上也有很多同学关注这个话题。@拴萝卜的棍子在前端乱炖上发表了一篇文章,剖析了相关的技术。值得大家一读,特将此文转载到小站。
你也许能够熟练的使用PS对文本进行图像掩埋;一个比较好的方法是在文字上添加一些纹理或者是一个背景图片。然后把这个文本存储为图像,你就可以在你的网站上使用;但是如果可以只使用HTML和CSS来产生相同的效果不是更好吗?好消息是,确实可以!CSS介绍了background-clip
和 mask-image
的属性,或许你可以使用他们来创造相似的效果,就像你用PS创造出来的那样。最重要的是,你也可以使用SVG来进行文本图像剪辑。
CSS的clip-path
属性是你改变传统单调的盒子布局,走向响应式设计的通行证。你将开始摆脱条条框框,自由地在您的网页上使用六边形、星形和八边形等等进行设计。一旦你真正开始使用clip-path
,你可以生成的形状是无限多的,只需要简单地调整几个值即可。虽然这篇文章的重点是使用CSSclip-path
完成多边形裁剪,但是所有的demo都提供了内联SVG的参考,这是为了能额外获得Firefox的支持。只要你使用过CSSclip-path
创建响应图形,生成响应式的SVG裁剪图形是很容易的。我们后面再详细说说。
在CSS中有些属性是允许CSS绘制图形形状,比如常见的是使用border
或者box-shadow
来绘制图形或者形状。除此之外,在CSS中还有类似circle()
函数也可以绘制圆形。除此之外,在CSS中有一些形状是为CSS其它属性服务,比如clip-path
为mask
服务和在shape-outside
让文本围绕形状排版。还有一些CSS属性使用像SVG中的图形做一些事情,比如offset-path
中使用path()
函数实现路径动画。而其中path()
是一个非常棒的功能,可以绘制任何图形。在接下来的内容中,来介绍一下CSS中的基本图形和路径。希望对大家有所帮助。
最近业务中需要实现一些镂空的效果。看到这些效果我最初想到的是通过CSS的mask
和clip-path
来实现,甚至还想结合SVG相关的特性。为了验证自己的一些想法,开始着手撸码,但问题来了,在撸码的过程中,我发现自己对于mask
的相关特性理解的还不够透彻。因此重新阅读CSS Masking Module Level 1规范中的文档和相关教程。才发现原来CSS Masking是如此的强大。下面是我自己对CSS Masking模块的一些理解,希望对大家学习和了解该功能模块有所帮助。