好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

clip-path

CSS clip-path 属性用于指定使用一个基本图形或者内联或外部的SVG路径作为剪裁路径对元素进行裁剪。

一条剪裁路径可以是一个CSS基本图形,或者是一条路径。剪裁路径定义一个区域,在这个区域之内的东西会被显示,而它之外的东西则会被屏蔽掉。

剪裁路径不会影响元素的固有形状,元素尺寸大小在剪裁之前和剪裁之后相同,不会对页面的其它元素照成影响。例如将一幅图片剪裁为一个不规则的形状,环绕在它周围的文字也不会沿形状分布:

如果你想使环绕的内容随着剪裁路径图形进行分布,可以使用 shape-outside 属性。得到的结果如下图:

在元素的剪裁区域之外的部分不会接收鼠标事件,即剪裁区域之外的隐藏部分在鼠标滑过或鼠标点击的时候不会有任何响应事件。

使用CSS基本图形制作的剪裁路径可以制作CSS动画效果。剪裁路径可以从一个图形的一个状态过渡变化为另外一个状态。也就是说,一个路径动画只能是同一个形状从初始状态变化到结束状态。

clip-path 属性用于替代CSS2.1中的属性。

属性只能在绝对定位的元素上使用,并且它只能使用 rect() 函数来剪裁规则的矩形区域。由于这些不足, clip 属性已经是一个过时的属性,不建议使用。

官方语法
clip-path: <clip-source> | [ <basic-shape> || <geometry-box> ] | none

/* 其中 */
<clip-source> = <url> /* SVG <clipPath> 元素的引用  */

<geometry-box> = <shape-box> | fill | stroke | view-box                 
                            

参数:

<clip-source> :作为剪裁路径的SVG clipPath 的URL地址。 <basic-shape> :CSS基本图形函数。一个CSS基本图形使用指定的参考盒模型来定位和计算尺寸大小。如果没有指定参考盒模型,将使用 border-box 作为参考盒模型。 <geometry-box> :这个参数可以是 <shape-box> , fill , stroke 或 view-box : <shape-box> :可以是以下4个取值: margin-box 、 border-box 、 padding-box 和 content-box 。 fill :应用在SVG元素上。使用对象的bounding box作为参考盒模型。 stroke :应用在SVG元素上。使用描边边界作为参考盒模型。 view-box :应用在SVG元素上。使用最近的SVG viewport作为盒模型。 none :默认值。没有剪裁路径被创建。

clip-path 属性的初始值为 none 。

应用范围

clip-path 属性可以应用在所有元素上。在SVG中,它可以应用在没有 <defs> 元素的容器元素上,以及所有的图形元素上。

示例代码

下面是 clip-path 的一些取值的示例代码:

clip-path: polygon(15px 99px, 30px 87px, 65px 99px, 85px 55px, 122px 57px, 
                             184px 73px, 198px 105px, 199px 150px, 145px 159px, 155px 139px, 
                             126px 120px, 112px 138px, 80px 128px, 39px 126px, 24px 104px);
clip-path: circle(70% at 0% 50%) padding-box;
clip-path: inset(10px 20px 30px 40px round 10px) margin-box;
clip-path: ellipse(farthest-side closest-side at 25% 25%);                              
                            

一个三角形的剪裁路径:

.element{
  width: 800px;
  height: 448px;
  max-width: 100%;
  margin: 50px auto;
  background-image: url(img/bear.jpg);
  background-size: cover;
  -webkit-clip-path:polygon(0 100%, 50% 0, 100% 100%);
  clip-path:polygon(0 100%, 50% 0, 100% 100%);
}                            
                            

剪裁路径第一个点在元素的左下角位置(0 100%),移动到元素的50%位置(50% 0),然后第三个点位于元素的右下角位置(100% 100%),这三个点组成一个三角形的剪裁路径,得到如下图的效果:

一个圆形的剪裁路径:

.element{
  width: 800px;
  height: 800px;
  max-width: 100%;
  margin: 50px auto;
  background-image: url(img/little-girl.jpg);
  background-size: cover;
  -webkit-clip-path:circle(50% at 50% 50%);
  clip-path:circle(50% at 50% 50%);
}                              
                            

圆形函数的3个参数分别为:圆心的坐标(X值和Y值)以及半径。得到下图效果:

要制作椭圆形的剪裁效果,也非常简单:

.element{
  width: 800px;
  height: 448px;
  max-width: 100%;
  margin: 50px auto;
  background-image: url(img/bear.jpg);
  background-size: cover;
  -webkit-clip-path:ellipse(30% 20% at 50% 50%);
  clip-path:ellipse(30% 20% at 50% 50%);
}                            
                            

椭圆图形函数的4个参数表示:椭圆的x轴半径、y轴半径、定位椭圆位置的x坐标和y坐标,后面两个值用at关键字和前面两个值分开。

在线演示

下面的几个例子分别使用CSS,内联SVG和外部SVG来制作 clip-path 剪裁图片效果,你可以测试你的浏览器是否支持这些效果。

CSS图片剪裁效果 内联SVG剪裁效果 外部SVG剪裁效果

浏览器支持

下面是 clip-path 属性的浏览器支持列表:

查看更多关于clip-path的详细内容...

  阅读:42次

上一篇: clip

下一篇:bottom

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网
[ SiteMap ]