用CSS来“切割”图片

这里所说的切割不是真正的切割哈,只是用CSS取图片中的一部分而已。这样做有很多好处哦,最大的好处就是减少了打开网页时请求图片的次数。主要有两种方式,一是做为某一元素的背景图片,二是用<img>元素的属性。下面就来看看如何做哈!

方式一:

用CSS中元素的background : background-color || background-image || background-repeat || background-attachment || background-position

示例:background:transparent url(http://hi.csdn.net/attachment/201010/13/139538_1286966876A7AV.jpg) no-repeat scroll -140px -20px;

解释:transparent表示透明无颜色
url(http://hi.csdn.net/attachment/201010/13/139538_1286966876A7AV.jpg) 表示背景图片
no-repeat 表示图片不重复
scroll 表示背景图片随浏览器下拉而滚动
-140px 表示水平位置在图片的-140px处(以图片的左上角为0,0)
-20px 表示垂直位置在图片的-20px处(以图片的左上角为0,0)

实例:

<html> <head> <style type="text/css"> a { width:100px; height:35px; background:transparent url(http://hi.csdn.net/attachment/201010/13/139538_1286966876A7AV.jpg) no-repeat scroll -20px -20px; } a:hover { width:100px; height:35px; background:transparent url(http://hi.csdn.net/attachment/201010/13/139538_1286966876A7AV.jpg) no-repeat scroll -140px -20px; } <style> </head> <body> <a href="#" mce_href="#">测试</a> </body> </html>

方式二:

用img的clip属性中的rect,clip:rect(y1 y1 x2 x1)参数说明如下:

y1=定位的y坐标(垂直方向)的起点

x1=定位的x坐标(水平方向)的起点

y2=定位的y坐标(垂直方向)的终点

x2=定位的x坐标(水平方向)的终点

注:坐标的起点是在左上角

<html> <head> <style type="text/css"> img { position:absolute; clip:rect(20px 100px 50px 20px); } </style> </head> <body> <p><img border="0" src="http://hi.csdn.net/attachment/201010/13/139538_1286966876A7AV.jpg"/></p> </body> </html>

我们不难看出,控制图片显示的关键在于clip:rect(20px 100px 50px 20px)这句,

但是千万不要遗漏了position:absolute;这是用于使用绝对值来定位元素

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现幻灯图图片切割效果,可以使用CSS3的transform属性和clip-path属性。我们可以将图片设置为绝对定位,并使用transform属性和clip-path属性来实现切割和动画效果。 以下是一个使用transform和clip-path属性实现幻灯图图片切割效果的示例代码: ```html <div class="slider"> <div class="slide slide1"></div> <div class="slide slide2"></div> <div class="slide slide3"></div> </div> ``` ```css .slider { position: relative; width: 800px; height: 400px; overflow: hidden; } .slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center center; background-repeat: no-repeat; clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); transform-origin: left; animation: slide 12s ease-in-out infinite; } .slide1 { background-image: url('slide1.jpg'); } .slide2 { background-image: url('slide2.jpg'); } .slide3 { background-image: url('slide3.jpg'); } @keyframes slide { 0% { transform: scaleX(0); clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); } 16.67% { transform: scaleX(1); clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); } 33.33% { transform: scaleX(1); clip-path: polygon(0 0, 75% 0, 100% 100%, 0% 100%); } 50% { transform: scaleX(1); clip-path: polygon(0 0, 100% 0, 100% 100%, 25% 100%); } 66.67% { transform: scaleX(1); clip-path: polygon(25% 0, 100% 0, 100% 100%, 0% 100%); } 83.33% { transform: scaleX(1); clip-path: polygon(0 0, 100% 0, 100% 75%, 0% 100%); } 100% { transform: scaleX(0); clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); } } ``` 上述代码中,我们创建了一个幻灯图容器,并在其中添加了三个幻灯片元素。我们使用clip-path属性将每个幻灯片裁剪成不同的形状,并使用动画将它们进行幻灯片切换。 clip-path属性的参数是一个形状,可以使用polygon()函数来定义多边形形状。函数的参数是多边形的各个点的坐标,以顺时针顺序定义。 我们还使用了transform属性来实现幻灯片的切换效果。transform属性可以用来对元素进行变换,其中transform-origin属性用来设置变换的中心点。在本例中,我们将变换的中心点设置为左侧边缘。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值