html图片的高宽大小,CSS:如何设置相对于父高的图像大小?

小编典典

原始答案:

如果您准备选择CSS3,则可以使用css3translation属性。根据更大的尺寸调整大小。如果您的高度大于容器的宽度,而宽度小于容器的宽度,则宽度将被拉伸到100%,高度将从两侧被修剪。同样适用于更大的宽度。

您的需求, HTML:

5dc075b2af765e3f61fabb916e2f0be5.png

2c67023f6e311e3c6862f8f99f0700f2.png

33e8f07374eae4de64bcc5704e538101.png

和 CSS:

.img-wrap {

width: 200px;

height: 150px;

position: relative;

display: inline-block;

overflow: hidden;

margin: 0;

}

div > img {

display: block;

position: absolute;

top: 50%;

left: 50%;

min-height: 100%;

min-width: 100%;

transform: translate(-50%, -50%);

}

说明

DIV设置为relative位置。这意味着所有子元素都将从此DIV的起始位置获取起始坐标(原点)。

图像被设置为BLOCK元素,min-

width/height两者都设置为100%意味着无论图像大小如何都应最小化其父图像的100%。min是关键。如果按最小高度计,图像高度超过了父代的高度,则没问题。它将查找最小宽度,并尝试将最小高度设置为父母的100%。两者都相反。这样可确保div周围没有缝隙,但图像始终较大并被裁剪overflow:hidden;

现在image,这个被设置为absolute与位置left:50%和top:50%。指从顶部和左侧推动图像50%,以确保原点来自DIV。左/上单位是从父级开始测量的。

魔术时刻:

transform: translate(-50%, -50%);

现在,此translateCSS3transform属性功能可移动/重新定位有问题的元素。此属性处理所应用的元素,因此值(x,y)或(-50%,-50%)意味着将图像负向左移动图像尺寸的50%,并向负向顶部移动图像尺寸的50%

例如。如果图片大小为transform:translate(-50%,-50%)200像素×150像素,则将计算为平移(-100px,-75px)。当我们拥有各种尺寸的图像时,%单位会有所帮助。

这只是找出图像质心和父DIV并进行匹配的一种棘手方法。

抱歉,解释时间过长!

2020-05-16

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值