CSS解决固定高度图片居中裁剪问题

html-css011

CSS解决固定高度图片居中裁剪问题,第1张

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

其实我们可以拆分一下:相框.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

img{

-webkit-clip-path: polygon(0 0,100% 0,100% 40px,145px 40px,130px 60px,115px 40px,0 40px,0 0)

clip-path: polygon(0 0,100% 0,100% 40px,145px 40px,130px 60px,115px 40px,0 40px,0 0)

}

要调整背景图的渲染尺寸,需要用到background-size这个样式规则,但这是CSS3新增的,所以目前暂时没有全兼容的解决方案。

哦,这个意思,那么如果你贴背景图的容器高度与背景图那几个logo一致,就采用纵向排列图片,垂直定位的方式;如果容器宽高都比logo尺寸大,那就没办法了,再嵌入一个小容器专门显示这个图标吧。