1.clip:默认值是auto,为不裁剪
<img border="0" src="http://image.zhangxinxu.com/image/study/s/s512/mm1.jpg" width="200" height="100">
当给img设置clip设置时,必须为img设置定位为绝对定位,为postion:absolute;
写样式时,
{
position:absolute;
clip:rect(0px 200px 100px 0px)
}
rect(top,right,bottom,left)
是裁剪图片的顶部,当是正值时,从图片的顶部开始裁剪。默认值是0
right:
是裁剪图片的右侧,默认值为图片的宽,当值开始逐渐减少时,图片从右侧开始一点一点的裁剪图片。
bottom:
是裁剪图片的底部,默认值为图片的高,当值逐渐减少时,图片从底部一点一点的裁剪图片。
left:
默认值是0,当值一点一点的增加时,开始从图片的左侧开始慢慢的裁剪图片。
当前的话,clip的形状函数只有rect()。clip属性只能在元素设置了‘position:absolute’或者'position:fixed'属性起作用。clip无法在设置'position:relative'和‘position:static’工作。

浏览器兼容性
你可能会很关注,这个属性的兼容性不知道如何?请放心,clip属性得到较好的支持,在chrome1.0+、firefox1.0+、opera7.0+、safari1.0+和ie8.0+都支持标准语法,但在ie4.0至ie7.0我们还是需要做一定的处理,需要把每个属性值之间的逗号去掉。
.my-element { position: absolute; clip: rect(10px 350px 170px 0); /* IE4 to IE7 */ clip: rect(10px, 350px, 170px, 0); /* IE8+ & other browsers */ }
需要特别的注意,ie4-ie7的要写在标准语句的前面,不然其他浏览器下将会无任何效果。
2.clip:rect(top,right,botttom,left)
在css2.1中,rect()中的<top>和<bottom>指定偏移量是从元素盒子顶部边缘算起;<left>和<right>指定的偏移量是从元素盒子的左边缘算起。<top>,<right>,<bottom>,<left>可以将值设置成为'auto'或者长度值<length>。而且还可以允许负的长度值。其中当<top>和<left>取值为‘auto’时,则默认为0,剪切区域的边缘和元素盒子边缘相同。当<right>和<bottom>设置为auto时,他们就相当于元素的宽度(这个宽度包括元素的border,padding和width),或者简单的理解为100%。
针对上面所言:
1.不显示剪切区域:当rect()中的bottom值小于top值,或者right值小于left值时,整个剪切区域不会显示。
二:clip-path
它是一个通过屏蔽和裁剪来隐藏元素的一部分的工具。尽管clip-path没有被主流的浏览器支持(包括IE和Firefox),但是webkit(chrome, safri)浏览器中,它仍然是一个实现时尚效果的小工具。
注意,在现代浏览器中需要添加使用-webkit-前缀。
clip-path简单的工作原理是提供一系列的x和y值来创建路径。当使用这些值创建一条完整路径时,就会把图像按照路径内部的尺寸进行裁剪。
利用clip-path,我们可以创建圆形,椭圆和多边形等不同的形状,创造力是唯一的限制。
例如:
一个简单的三角形裁剪:

.clipClass {
-webkit-clip-path: polygon(0 100%, 50% 0, 100% 100%);
}
分析:
x:0 和y:0表示从元素的左上角开始,并从左上角开始移动。x: 100%;表示元素右边,y:100%;表示的是元素底部。
这个简单路径开始与左下角,水平移动50%,并到达顶部位置,然后又水平移动到100%的位置,垂直向下回到底部,到达第三个坐标点,三角形就出来了。
 
形状:
在上面的实例中,我们使用polygon来创建一个图形,并通过多对用逗号(,)分开的x值和y值定义了一个路径。然后,我们可以通过取不同的值来创建不同的图形。
圆:

为了创建圆形,需要给circle传入三个值:圆心的坐标(X值和Y值)以及半径。当定义圆的半径时,我们可以用at关键字来定义圆心坐标:
.clipClass {
-webkit-clip-path: circle(50% at 50% 50%);
}
椭圆:

为了实现椭圆,需要给ellipse提供4个值:椭圆的x轴半径,y轴半径,定位椭圆位置的x坐标和y坐标,后面两个值用at关键字和前面的两个值分开。
.clipClass {
-webkit-clip-path:ellipse(30% 20% at 50% 50%);
}
插图:(在老版本的chrome中有错误)

因为多边形边缘锐利,所以他可能不是你想要的东西,你想创建的圆角矩形,所以我们来看看Inset的值。Insert使用四个值(对应“上 右 下 左”的顺序)来设置圆角半径。
.clipClass {
-webkit-clip-path: inset(25% 0 25% 0 round 0 25% 0 25%);
}
上面的各个值分别对应为:
1. inset(<top><right><bottom><left>round<top-radius><right-radius><bottom-radius><left-radius>)
其简写形式:
.clipClass {
-webkit-clip-path: inset(25% 0 round 0 25%);
}
注:其中的round前的参数是图形距离边框的距离,而round后的参数是图形的四个角的radius。使用border-radius实现上图的方法命令是:border-radius: 0 25%;
快速参考
  • Circle: circle(radius at x-axis y-axis)
  • Ellipse: ellipse(x-rad y-rad at x-axis y-axis)
  • Polygon: polygon(x-axis y-axis, x-axis y-axis, … )
  • Inset: inset(top right bottom left round top-radius right-radius bottom-radius left-radius)
创建图形:
正如你看到的,原型和圆角图形被少数几个值限制了,因而Polygons是创建复杂图形的最好选择,Polygons能定义多组点,运行我们用各种方式去裁图形。
Comic Textbox

.clipClass {
-webkit-clip- path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 75% 100%,50% 75%, 0% 75%);
}
Star:

.clipClass {
-webkit-clip-path: polygon(50% 0%, 63% 38%, 100% 38%, 69% 59%, 82% 100%, 50% 75%, 18% 100%, 31% 59%, 0 38%, 37% 38%);
}
注意:
/* 引用一个内联的 SVG <clipPath> 路径*/ clip-path: url(#c1); /* 引用一个外部的 SVG 路径*/ clip-path: url(path.svg#c1);
动画:
给形状应用一个hover,并用过渡属性来创建平滑的效果,但是需要记住,我们创建的初始默认状态,必须同所有的hover状态都使用相同的坐标系。
.animateClass {
-webkit-clip-path: polygon(20% 0%, 0% 0%, 0% 50%, 0% 80%, 0% 100%, 50%100%, 80% 100%, 100% 100%, 100% 50%, 100% 0, 80% 0, 50% 0);
}
.animateClass:hover {
-webkit-clip-path: polygon(50% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50%70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
}
 

SVG知识难点的更多相关文章

  1. C++一些知识难点

    什么是"引用"?申明和使用"引用"要注意哪些问题? 答:引用就是某个目标变量的"别名"(alias).相应用的操作与对变量直接操作效果全然同 ...

  2. 使用纯 CSS 实现超酷炫的粘性气泡效果

    最近,在 CodePen 上看到这样一个非常有意思的效果: 这个效果的核心难点在于气泡的一种特殊融合效果. 其源代码在:CodePen Demo -- Goey footer,作者主要使用的是 SVG ...

  3. 【转】JAVA自学之路

    JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...

  4. Xcode7--免证书真机调试

    Xcode7之前,想要真机调试,必须花99刀购买开发者账号,而且步骤繁琐,需要下载证书.随着Xcode7的推出,大幅度的简化了真机调试的步骤,对ios开发工作者和正在学习ios开发的众多码农们,可以说 ...

  5. 2016-2017-2 《Java程序设计》教学进程

    2016-2017-2 <Java程序设计>教学进程 目录 考核方式 课前准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...

  6. 那些年我们写过的T-SQL(上篇)

    在当今这个多种不同数据库混用,各种不同语言不同框架融合的年代(一切为了降低成本并高效的提供服务),知识点多如牛毛.虽然大部分SQL脚本可以使用标准SQL来写,但在实际中,效率就是一切,因而每种不同厂商 ...

  7. 2015-2016-2 《Java程序设计》教学进程

    2015-2016-2 <Java程序设计>教学进程 目录 考核方式 寒假准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...

  8. DHCP的若干原理解释

    转自:http://blog.chinaunix.net/uid-22287947-id-1775641.html 搜罗了几种关于dhcp的原理和过程解释 DHCP(Dynamic Host Conf ...

  9. Linux第二次报告20135221

    学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 熟悉Linux系统下的开发环境   2. 熟悉vi的基本操作   3. 熟悉gcc编译器的基本原理   4. 熟练使用gcc ...

随机推荐

  1. LeetCode之283. Move Zeroes

    ---------------------------------------------------------------------- 解法一:空间换时间 我使用的办法也是类似于"扫描 ...

  2. hdu 1358 Period

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1358 思路:Next数组的用法,在第i个位置上如果有i%(i-Next[i])==0的话最小循环节就是 ...

  3. AngularJS 表格

    ng-repeat 指令可以完美的显示表格. 使用 angular 显示表格是非常简单的: <!DOCTYPE html> <html> <head> <me ...

  4. 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计

    ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...

  5. 如何设置让基于matplotlib的绘图库正常的显示no-ascii字符(中文字符)

    添加一句: import matplotlib matplotlib.rc('font', family='simhei') 其中family直接指示字体名字就行,比如simhei 注意:如果不能正常 ...

  6. BFC的深入理解

    一:BFC是什么东东 了解BFC前先一了解一下Box和Formatting Context (1)B: BOX即盒子,页面的基本构成元素.分为 inline . block 和 run-in 三种类型 ...

  7. nodejs review-03

    39 Serve different file types with our server 处理文件类型 function content_type(filename) { var ext = pat ...

  8. jQuery插件(cookie存值)

    使用cookie插件后,可以很方便地通过cookie对象保存.读取.删除用户的信息,还能通过cookie插件保存用户的浏览记录,它的调用格式为: 保存:$.cookie(key,value):读取:$ ...

  9. 简单的网络引导安装CentOS7

    实验室有几台电脑,里边装有windows,因为实验需求要给其装入CentOS7.但是这几个电脑无法用U盘引导系统的安装,虽然带有光驱,但是又不想麻烦去买碟片,所以便想到用网络引导系统的安装. 1. 软 ...

  10. [软件推荐]Windows文件夹多标签工具Clover

    Clover 是 Windows Explorer 资源管理器的一个扩展,为其增加类似谷歌 Chrome 浏览器的多标签页功能,目前最新版本为:3.1.7 Clover 把 Chrome 标签页有的样 ...