CSS3 clip-path图形剪裁

CSS3中的clip-path可以遮罩很多图形,它的原理其实是将超出剪裁范围的内容overflow设置为hide了,该属性可以剪裁多种不同的图形效果,算是比较方便实用的工具,但目前看来该属性浏览器兼容性不佳,ie和firefox并不兼容,chrome可以支持,我在chrome尝试了几个简单的例子。

1.圆形circle

1.png
//html
<div class='container'>
  <div class='content clip-sty'></div>
</div>
//css
.clip-sty{
  -webkit-clip-path: circle(95px at 100px 100px);
}

原理很简单,其实就是一个div,添加一个clip-path: circle(95px at 100px 100px)的属性,第一个参数代表指定圆的半径,最后两个参数代表圆心的坐标位置,容器的左上角为坐标原点(0,0),这些数值也可以用百分比表示,如:clip-path: circle(45% at 50% 50%),超出剪裁外的部分会被隐藏。虽然说圆形的话我们有另一个更快捷的属性:border-radius就能轻松办到,但这也不失为一种很有用的工具。

2.椭圆ellipse

2.png
.clip-sty{
  -webkit-clip-path: ellipse(80px 60px at 100px 100px);
}

与圆形十分类似,(100px,100px)表示圆心位置,80px表示较长半径,60px表示短半径,也可用百分比形式表示。

3.圆角效果inset
用这个属性可以创造出一些圆角效果,例如圆角矩形啊等,如图:

3.png
.clip-sty{
  -webkit-clip-path:inset(20% 0 20% 0 round 0 0 25% 25%);
}

inset使用四个值分别对应“上 右 下 左”的顺序,前4个值对应的是外边距,后4个值对应四个角的圆半径值。

4.多边形polygon
写法:clip-path: polygon(x y, x y, x y … );可以定义多组x,y,每个 (x,y)代表剪裁的坐标,以左上角为初始坐标,如图:

4.png
.clip-sty{
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%);
}

[demo展示中心]:https://yomonah.github.io/project/app.html#/clip-path
[源码]:https://github.com/yomonah/react-demo/tree/master/src/components/clip

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载请声明 原文链接 关注公众号获取更多资讯 这篇文章主要总结H5的一些新增的功能以及一些基础归纳,这里只是一个提...
    前端进阶之旅阅读 12,955评论 22 225
  • 一.自适应的椭圆 问题: 我们肯定都注意到过,我们给一个正方形元素添加一个足够大的border-radius(指定...
    FlyingWWS阅读 4,114评论 0 2
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,185评论 2 32
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 5,801评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,835评论 0 11