CSS裁剪clip这个属性平时用的不多,但其实它并不是CSS3的新属性,很早就开始出现了。本文将介绍关于clip属性的相关知识

定义
  一个绝对定位或固定定位元素通过使用属性clip可以改变剪裁区域的形状,但并不改变元素本身的宽高属性

clip

  值: rect(top,right,bottom,left) | auto | inherit

  初始值: auto

  应用于: 绝对定位或固定定位元素

  继承性: 无

  [注意]默认值auto表示元素的内容不应剪裁
CSS裁剪属性clip使用的实例教程

rect
  clip:rect(top,right,bottom,left)中的值不是边偏移,而是距元素左上角的距离。具体来说,就是top和bottom是表示距离元素上边界的距离;left和right是距离元素元素左边界的距离。这里元素的边界指元素边框外侧。

  rect(...)的语法与CSS的其他语法相比不太一样。原因是它基于早期的定位草案,而该草案使用了左上偏移机制。在CSS2之前,实现这个语法的IE已经成为完备推荐,于是标准从边偏移修改成适用这个实现。但是,这意味着如果高度和宽度没有明确定义,将无法设置一致的剪裁区域。

  [注意]IE7-浏览器不支持rect(top,right,bottom,left),支持的写法是rect(top right bottom left);而其他浏览器两种写法都支持

  clip:rect(...)只允许长度值和auto,不允许有百分数。如果设置为auto,则相当于将剪裁边界设置为适当的内容边界。对于top或left设置auto,相当于值为0;对于right或bottom设置auto,相当于值为水平方向的宽度和或垂直方向的高度和

  [注意]该元素水平方向或垂直方向的clip区域的边界是外框外侧,不包括outline
CSS裁剪属性clip使用的实例教程

应用
1.隐藏效果

  当clip:rect(top,right,bottom,left)中的top>=bottom,或者left>=right时,可实现元素的隐藏效果,效果类似于visibility:hidden;

2.雪碧图定位
css sprite

定义:css sprite是一种网页图片应用处理方式,它允许将一个页面涉及到的所有零星图片都包含到一张大图中

优点:
  [1]减少http请求次数
  [2]减少图片大小,提升网页加载速度 (多张图片加载速度小于拼合成的图片的加载速度)

缺点:
  [1]提高开发成本
  [2]提高维护成本

它能合并的只能是用于背景的图片:
  [1]对于<img src=""/>设置的图片,是不能合并到大图的,如果合并这些图片会影响页面可读性,语义化降低且可调整的范围小。
  [2]对于横向和纵向都平铺的图片,也不能使用css cprite,如果是横向平铺的,只能将所有横向平铺的图合并成一张大图,只能竖直排列,不能水平排列;如果是纵向平铺的,我们只能将所有纵向平铺的图合并成一张大图,只能水平排列,不能竖直排列。
CSS裁剪属性clip使用的实例教程

css sprite允许将一个页面涉及到的所有零星图片都包含到一张大图中,然后利用background-position来显示应该显示的区域。
而如果使用clip也可以实现同样的效果。

CSS Code复制内容到剪贴板
  1. div{   
  2.     height:128px;   
  3.     overflow: hidden;   
  4. }   
  5. img{   
  6.     position:absolute;   
  7.     background-color: rgba(0,255,0,0.5);   
  8.     clip:rect(0,auto,128px,0);   
  9. }   
  10. img:hover{   
  11.     margin-top: -128px;   
  12.     clip:rect(128px,auto,auto,0);   
  13. }   
  14.   
  15. <div>   
  16.     <img src="http://7xpdkf.com1.z0.glb.clouddn.com/sofa_sprite.png" alt="测试图片">       
  17. </div>  

CSS裁剪属性clip使用的实例教程

3.歌词演示效果

  利用clip和background-clip实现歌词演示效果,实际上通过改变宽度也可以实现,主要用于拓展思路。

CSS Code复制内容到剪贴板
  1. @keyframes loop{   
  2.     0%{   
  3.         clip:rect(0,0px,100px,0);   
  4.     }   
  5.     100%{   
  6.         clip:rect(0,520px,100px,0);   
  7.     }   
  8. }   
  9. .show,.con{   
  10.     width: 520px;   
  11.     height: 100px;   
  12.     line-height: 100px;   
  13.     font-size: 30px;   
  14.     position:absolute;   
  15.     background-color: lightgreen;   
  16.   
  17. }   
  18. .con{   
  19.     animation: loop 6s linear infinite;   
  20.     -webkit-background-clip: text;   
  21.     color: red;   
  22. }       
  23.   
  24. <div class="show">我曾经跨过山和大海,也穿过人山人海</div>   
  25. <div class="con">我曾经跨过山和大海,也穿过人山人海</div>  
标签:
CSS,裁剪

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“CSS裁剪属性clip使用的实例教程”
暂无“CSS裁剪属性clip使用的实例教程”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。