<center>如何用纯CSS将图片填满div</center>

如何用纯CSS将图片填满div

<div style="height:270px;width:400px;border:2px black solid;">
    <a href="http://www.paipk.com"><img src="..." ></a>
</div>

object-fit解决方法:

直接给img套用一个object-fit:cover;让img填满盒模型

div img{
    width: 100%;
    height: 100%;
    object-fit:cover;
}

这个方法很简单也很实用,也符合理论上对盒模型和IMG容器的解释。因为img本来也是一个容器,只不过它是公认的用来引导图片的容器,用替换法把图片替换成覆盖的尺寸就是我要的效果。这个思路在理论上都是正确的。
但由于是新代码,在一些浏览器上还不兼容。回退机制上,如果浏览器不认识object-fit,那整个图片就会被强制拉伸成容器的尺寸。所以在回退机制上有待解决!

object-fit解决方法:

通过对img元素垂直居中,并将它的高度和宽度设置一个最小满屏值,这样,也能让图片铺满容器:

div{
    position:relative;
    overflow:hidden;
}
div img{
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    min-width: 100%;
    min-height: 100%;
    transform:translate(-50%,-50%);
}

图片高度或宽度任意一尺寸小于容器时,这个情况是正常的,但如果图片的高度和宽度尺寸都大于容器,图片也能铺满,但容器就只显示大图的中间部分。这就是这个方法的缺陷。

将图片设置为背景图解决方法:

<div class="img"></div>

div.img {
            width: 400px;
            height: 200px;
            background-image: url(http://img5.imgtn.bdimg.com/it/u=4021999557,1995524928&fm=11&gp=0.jpg);
            -webkit-background-size:cover;
            -moz-background-size: cover;
            -o-background-size: cover;
            background-size: cover;
        }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的代码,最下面的空白区域可能是由于父级容器的高度未被填满导致的。你可以尝试调整父级容器的高度,使其与子元素的高度一致。 在给`gscon-product`类的div添加样式时,你可以将`height`属性设置为`100%`,以确保其高度填满父级容器。此外,还可以将父级容器的`padding`和`margin`属性设置为0,以消除可能存在的间距。 以下是修改后的示例代码: ```html <div class="gscon-product gscon-product-col-1" style="background:url('${ctx}/gresource/platform/main/img/stripes.png'); height: 100%; padding: 0; margin: 0;"> <div id="loadImgDiv" align="center" style="position: absolute;top:30px;left:0;width:100%;height:100%;z-index: 1000;background: #FFF;"> <!-- 首先放一个div,用做loading效果 --> <div style="position: absolute;left: 45%;top: 45%;"> <img src="${ctx }/resource/frame/image/webfw-loading.gif"/> </div> </div> <div id="tabs" class="easyui-tabs" data-options="fit:true,border:false"> <div title="主页" style="overflow: hidden; border: none;" data-options="type:'PageSign'"> <iframe id="mainFrame" onload="hideLoading();" frameborder=no scrolling="auto" style="border: none; overflow-x: hidden; overflow-y: hidden; margin: 0px;height: inherit;width: inherit;" src="${ctx }/platform/main/desktop.haze?systemId=1678873404683"></iframe> </div> </div> </div> ``` 通过将父级容器的高度设置为100%,并将`padding`和`margin`设置为0,可以确保子元素填满父级容器,从而消除最下面的空白区域。 请注意,还可以根据需要调整其他样式属性来适应你的布局需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值