CSS中的路径裁剪样式clip-path

前面的话

  CSS借鉴了SVG裁剪的概念,设置了clip-path样式,本文将详细介绍路径裁剪clip-path

概述

  clip-path属性可以防止部分元素通过定义的剪切区域来显示,仅通过显示的特殊区域。剪切区域是被URL定义的路径代替行内或者外部svg,或者定义路线的方法

  [注意]IE浏览器不支持,且低版本webkit内核浏览器需要添加-webkit-前缀

【clip-path】

  值: <clip-source> | [ <basic-shape> || <geometry-box> ] | none

  <clip-source>: url()

  <basic-shape>:  inset() | circle() | ellipse() | polygon()

  <geometry-box>: fill-box | stroke-box | view-box | margin-box | border-box | padding-box | content-box

  初始值: none

  应用于: 所有元素

  继承性: 无

简单图形裁剪

【圆形裁剪】

<style>
.outer{
  width:100px;
  height: 100px;
  background:orange;
  clip-path: circle(50% at 50% 50%)
}
</style>
<div class="outer"></div>

【椭圆裁剪】

<style>
.outer{
  width:100px;
  height: 100px;
  background:orange;
  clip-path: ellipse(25% 40% at 50% 50%);
}
</style>
<div class="outer"></div>

【矩形裁剪】

<style>
.outer{
  width:100px;
  height: 100px;
  background:orange;
  clip-path: inset(5% 20% 15% 10%);
}
</style>
<div class="outer"></div>

多边形裁剪

【三角形】

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

【菱形】

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

【梯形】

clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);

【平行四边形】

clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);

【五边形】

clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);

【六边形】

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

【七边形】

clip-path: polygon(50% 0%, 90% 20%, 100% 60%, 75% 100%, 25% 100%, 0% 60%, 10% 20%);

【八边形】

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

特殊图形裁剪

【斜角】

clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);

【槽口】

clip-path: polygon(0% 15%, 15% 15%, 15% 0%, 85% 0%, 85% 15%, 100% 15%, 100% 85%, 85% 85%, 85% 100%, 15% 100%, 15% 85%, 0% 85%);

【左箭头】

clip-path: polygon(40% 0%, 40% 20%, 100% 20%, 100% 80%, 40% 80%, 40% 100%, 0% 50%);

【右箭头】

clip-path: polygon(0% 20%, 60% 20%, 60% 0%, 100% 50%, 60% 100%, 60% 80%, 0% 80%);

【星星】

clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);

【十字架】

clip-path: polygon(10% 25%, 35% 25%, 35% 0%, 65% 0%, 65% 25%, 90% 25%, 90% 50%, 65% 50%, 65% 100%, 35% 100%, 35% 50%, 10% 50%);

【叉号】

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

【对话框】

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

变形

  clip-path属性支持transition,但前提是相同的裁剪函数,及相同的参数个数

  下面是一个切角效果向正方形的变形过程

.outer{
  width:100px;
  height: 100px;
  background:orange;
  clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
  transition:.5s clip-path;
}
.outer:hover{
  clip-path:polygon(0 0,0 0,100% 0,100% 0,100% 100%,100% 100%,0 100%,0 100%);
}
<div class="outer"></div>
 

  鼠标移入时开始变形

 

扩展

  最后,介绍一个工具和一个网站

【工具】

  clippy是一个在线的路径裁剪工具,可以使用clip-path属性裁剪出任意的图形

【网站】

  species-in-pieces.com 是世界一家知名的宣传濒危动物保护网站。,主要使用clip-path polygon实现了30个动物及30种变换

时间: 2024-08-28 17:52:22

CSS中的路径裁剪样式clip-path的相关文章

CSS中如何使用背景样式属性,看这篇文章就够用了

原文:CSS中如何使用背景样式属性,看这篇文章就够用了 css背景样式属性介绍# 背景样式就是自定义HTML标签的背景颜色或背景图像. 背景属性说明表 属性名 属性值 描述 background-color #f00.red.rgb(255,0,0) 设置背景颜色. background-image url(背景图片路径) 设置背景图像. background-repeat repeat.repeat-x.repeat-y.no-repeat 设置背景图片是否平铺和平铺方向. backgroun

CSS中的三种样式来源:创作人员、读者和用户代理

CSS中的样式一共有三种来源:创作人员.读者和用户代理,来源的不同会影响到样式的层叠方式. 首先,创作人员(author's+style)样式应该是我们最熟悉的,如果你是一个前端开发者,那么你写的那些样式就叫做创作人员样式. 然后是用户代理样式(agent's+style),用户代理也就是我们通常所说的浏览器(IE.Firefox等等),这些浏览器会提供一些默认的样式,比如IE浏览器中,一个纯粹由html代码构成的网页里,我们会发现超链接会带有一个蓝色的前景色,这其实就用户代理样式,借用一些插件

《转载》CSS中的三种样式来源:创作人员、读者和用户代理

CSS中的样式一共有三种来源:创作人员.读者和用户代理,来源的不同会影响到样式的层叠方式,很多第一次学习CSS的朋友,对这三种来源可能会存在一些困惑,下面我写一下自己的理解,若有错误的地方还请指正. 首先,创作人员(author’s style)样式应该是我们最熟悉的,如果你是一个前端开发者,那么你写的那些样式就叫做创作人员样式. 然后是用户代理样式(agent’s style),用户代理也就是我们通常所说的浏览器(IE.Firefox等等),这些浏览器会提供一些默认的样式,比如IE浏览器中,一

CSS中URL路径

项目中,为a标签添加背景,老是没效果 (VS2013中相关文件的位置:CSS文件位于/Content中,图片位于/images中) 为a标签添加背景的CSS代码为:background:  url(images/sort.png) no-repeat 0 3px; 一直没有效果,后来才发现是绝对路径,相对路径搞错了.url(images/sort.png)表示的是当前文件夹下的images文件夹下的sort.png图片,因为CSS文件位于/Content文件夹,所以系统就去/Content/im

CSS中url路径的使用说明

1.background-image一类 background-image的url用来指定背景图片的路径,该路径是相对于css文件而言的. 2.behavior一类 IE使用behavior: url(plugin/xxx.htc)来设置html组件的路径,这里的url是相对于html文件的. (不同目录下的html文件,使用此css的url设置的路径将会不相同,通常方法是使用网站的根路径"/"    behavior: ulr(/plugin/PIE.htc) )

使用 jQuery 修改 css 中带有 !important 的样式属性

外部样式为: div.test { width:auto !important; overflow:auto !important } 通过 $("div.test").css("width","100px"); 和 $("div.test").css("width","100px !important"); 是无效的 要想修改 div 的 width,可以通过如下这种方式: 1 $(&

CSS中关于table的样式的一些规则

if collapsing borders have the same style and width, but differ in color, then ... from most to least preferred: cell, row, row group, column, column group, table. if ... come from same type of element, such as two rows... then color is taken from bo

css中的段落样式及背景

一.段落样式 css中关于段落的样式主要有行高,缩进,段落对齐,文字间距,文字溢出,段落换行等.它们的具体语法如下: line-height : normal | length text-indent : length text-align : left | right | center | justify letter-spacing : normal | length text-overflow:clip | ellipsis word-wrap:normal | break-word 其中

透过现象看webpack处理css文件中图片路径转换的具体过程

webpack是目前使用比较流行的一个前端模块打包器,前端的任何资源都被当成一个模块来处理,如图片.css文件等等.在基于webpack构建的前端项目中,一般都会配置有关css文件处理的规则,这其中也包括css文件中图片资源的处理,那么webpack到底是怎么处理它的呢?笔者之前也遇到过类似图片路劲的问题,为此还写过一篇博文webpack生成的css文件background-image url图片无法加载.今天就来说说webpack是怎么处理css文件中的图片路径的,首先上一个具体的例子. 一个