css实现固定的图片比例

css 实现 16:9 的图片比例

需求:

最近产品要求不管原图的大小是多少,宽度一定,高度要自自适应为 16:9。

分析:

对于正常的固定好宽度大小,这个需求很容易解决,直接通过人工计算,根据宽度的数值计算好高度的数值,然后 css 直接设置高度就行了。这样当然简单。可是现在在移动开发的过程中,我们为了自适应不同大小的屏幕,通过设置百分比来定宽,这样 css 无法通过计算得出这个固定的高度。

当然解决这个方式可以通过 js,程序算出绝对高度再进行设置。这是解决问题最容易想到的方法。但是这使我们这个功能的实现需要 js 的介入,大材小用,我们的原则是能用 css 实现的功能尽量用 css,这有利于后期项目的维护。

css 同样可以实现这个问题,我们可以利用边距的百分比属性定义来优雅实现。

重点:边距值设置为百分比的话,是基于父元素的宽度

方案:

我们通过百分比设置宽度,根据宽度的比例数值*9/16,计算出高度的百分比数值,设置内边距为高度的数值,最后用绝对定位把图片百分百填充到我们设置的区域里面。

<div class="img_wrap">
  <img src="" />
</div>
.img_wap {
  padding-bottom: 56%;
  width: 100%;
  position: relative;
}

.img_wap img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值