如何通过css来剪切图片,而且不占位

html-css034

如何通过css来剪切图片,而且不占位,第1张

在图片的外围加一个div框,然后通过这个框进行加宽高,然后用overflow:hidden来隐藏图片多余的部分。像现在很流行的圆形头像,其实图片是一张四方或者长方的图片。

然后通过对包住div的css加:border-radius:50%overflow:hidden就可以显示为圆形的图片了。关于这个是最方便的。也可以用这个方法解决图片的裁切问题。

希望我的解答可以帮到你,有什么不懂可以追问。

页面实现大头贴功能,相框固定,照片可更换,类似下图。

其实我们可以拆分一下:相框.png是一张图片,金泰熙小姐姐照片.jpg是另一张图片,只要把相框.png叠在金泰熙小姐姐照片.jpg图片前面,那么就实现啦!

先上HTML结构:

相框为固定宽高,假设宽为300px,高为400px。

CSS样式如下:

那么问题来了,photo怎么居中?

试过的不成功解法:

1、把photo设为绝对定位,left:-50%,再设margin-left为负值。由于photo宽度不确定,因此margin-left具体值不确定。

2、宽度设为300px,图片变形。

3、把photo设为绝对定位,margin:auto,left:0,right:0。当box容器宽度小于photo时,该方法失效。

以上方法均无法实现居中后,想到如下可行办法:

HTML结构:

CSS样式:

给photo外加一个div容器photobox,给photobox设定一个足够宽的宽度,再将photobox相对box居中,然后再用text-align:center让photo相对于photobox居中。

photobox容器left值=(photobox容器宽 - box容器宽)/2

定义

clip 属性设置元素的形状。

当一幅图像的尺寸大于包含它的元素时会发生什么呢?"clip" 属性允许您规定一个元素的可见尺寸,这样此元素就会被修剪并显示为这个形状。

继承性:No

说明

这个属性用于定义一个剪裁矩形。对于一个绝对定义元素,在这个矩形内的内容才可见。出了这个剪裁区域的内容会根据 overflow 的值来处理。剪裁区域可能比元素的内容区大,也可能比内容区小。

JavaScript 语法

CSS 属性也可通过一段 JavaScript 被动态地改变。

脚本语法:

object.style.clip="rect(0px,50px,50px,0px)"在我们的 HTML DOM 教程中,您可以找到更多有关 clip 属性 的细节。

在我们的 HTML DOM 教程中,您也可以找到完整的 Style 对象参考手册。

例子

img

{

clip: rect(10px, 5px, 10px, 5px)

}

值 描述

shape 设置元素的形状。合法的形状值是:rect (top, right, bottom, left)

auto 默认。浏览器可设置元素的形状。