html图片高度全屏居中,CSS解决固定高度图片居中裁剪问题

场景需求

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

a0a99e28414d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

解题思路

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

先上HTML结构:

我是原始照片_宽高不定

我是花里胡哨的相框_中间镂空

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

CSS样式如下:

.box{width:300px;height:400px;overflow:hidden;position:relative;}

.photo{height:400px;}

.phframe{width:300px;height:400px;position:absolute;left:0;top:0;}

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

试过的不成功解法:

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

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

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

解决方法

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

HTML结构:

我是原始照片_宽高不定

我是花里胡哨的相框_中间镂空

CSS样式:

.box{width:300px;height:400px;overflow:hidden;position:relative;}

.photobox{width:1000px;height:400px;position:absolute;left:-350px;top:0;text-align:center;}

.photo{height:400px;}

.phframe{width:300px;height:400px;position:absolute;left:0;top:0;}

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值