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

本文介绍三种使用纯CSS使图片填满div的方法:object-fit属性、通过定位和尺寸调整以及将图片作为背景图。每种方法都有其适用场景和局限性,帮助读者根据不同需求选择合适方案。

如何用纯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;
        }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link href="css/all.css" rel="stylesheet" media="all" type="text/css" /> <title>国潮风零食</title> </head> <body> <div class="top"> <div class="center"> <div class="fl">欢迎来到国潮风零食商城</div> </div> </div> <header> <div class="logo"><img src="images/logo.jpg" width="180"/></div> <div class="menu"> <ul class="center"> <li style="background:#FF6633"><a href="index.html">首页</a></li> <li style="background:#6666CC"><a href="list.html">商品</a></li> <li style="background:#009999"><a href="reg.html">注册</a></li> <li style="background:#CC6699"><a href="login.html">登录</a></li> </ul> <div class="clear"></div> </div> </header> <div class="content center"> <div class=""> <div class="bar2">商品</div> <div class="left"><img src="images/2.jpg" width="100%" /></div> <div class="right"> <h2>高端零食良品铺子 大礼包 干果糖果</h2> <p>好零食 选良品 挑更好的不会错</p> <h1>¥28.9</h1> <a href="login.html" class="gm">立刻购买</a></div> <div class="clear"></div> <div class="bar2">详情</div> <div class="info" style="text-align:center"> <p><img src="images/r1.jpg" width="100%" /></p> <p><img src="images/r2.jpg" width="100%" /></p> <p><img src="images/r3.jpg" width="100%" /></p> <p><img src="images/r4.jpg" width="100%" /></p> <p><img src="images/r5.jpg" width="100%" /></p> </div> </div> </div> </div> <div class="end"> <p>版权所有 </p> </div> </body> </html> 把logo排成一行填满那一行
11-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值