为什么一张图片的显示不了,还有4张图片显示不了,麻烦老师帮忙改下,谢谢

为什么一张图片的显示不了,还有4张图片显示不了,麻烦老师帮忙改下,谢谢

功能不能实现

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        #box{

            width:80%;

            margin:0 auto;

            background: #ccc;

            text-align:center;

        }

        #box>img{

            display: inline-block;

            padding:1.5%;

            width:21%;

            height:200px;

        }

        /*此处写代码*/

        @media (min-width:960px) {

            #box>img{

                width: 25%;

            }

        }

        @media (min-width:780px)  and (max-width:959px){

            #box>img{

                width: 33.33333%;

            }

        }

        @media (min-width:440px)  and (max-width:779px){

            #box>img{

                width: 50%;

            }

        }

        @media (max-width:439px){

            #box>img{

                width:100%;

            }

        }

        /* #box>img{

                width:100%;

            }

        @media (min-width:440px){

            #box>img{

                width:50%;

            }

        }

        @media (min-width:780px){

            #box>img{

                width:33.3333333%;

            }

        }

        @media (min-width:960px){

            #box>img{

                width:21%;

            }

        } */

        /* #box>img{

                width:21%;

            }

        @media (max-width:960px){

            #box>img{

                width:29%;

            }

        }

        @media (max-width:780px){

            #box>img{

                width:40%;

            }

        }

        @media (max-width:440px){

            #box>img{

                width:110%;

            }

        } */

    </style>

</head>

<body>

    <div id="box">

        <img src="http://img1.sycdn.imooc.com/climg/5a45e49100014e5010601059.jpg" alt="">

        <img src="http://img1.sycdn.imooc.com/climg/5a45e53b00012e6d09940789.jpg" alt="">

        <img src="http://img1.sycdn.imooc.com/climg/5a45e53c0001d04e09940732.jpg" alt="">

        <img src="http://img1.sycdn.imooc.com/climg/5a45e49100014e5010601059.jpg" alt="">

        <img src="http://img1.sycdn.imooc.com/climg/5a45e53b00012e6d09940789.jpg" alt="">

        <img src="http://img1.sycdn.imooc.com/climg/5a45e53c0001d04e09940732.jpg" alt="">

    </div>

</body>

</html>



写了3中方法,好像没个都有问题,有的不能显示1张图片,有的不能显示4张图片,麻烦老师看下


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕星星 2021-10-21 17:01:55

同学你好,可以这样测试,不缩小浏览器窗口。将控制台调整为右侧显示,然后拖拽减小页面视口宽度

https://img1.sycdn.imooc.com//climg/61712c36097277cc02860132.jpg

https://img1.sycdn.imooc.com//climg/61712c560930389109340325.jpg

自己再试试。

好帮手慕星星 2021-10-21 16:05:23

同学你好,计算宽度的时候需要考虑到图片有左右的padding值,各1.5% 。所以如果想一行显示四个,那么宽度应该是(100%-1.5*8)/4 =22% ,同学设置宽度为25%,确实大了,所以不能一行显示四个。一张图片是同样的道理,不过这边测试是可以显示一张的。

另外还需要考虑img为行内元素,默认存在间隙,可以在父元素中设置font-size为0,清除间隙。例如:

https://img1.sycdn.imooc.com//climg/61711e470925658d04080521.jpg

https://img1.sycdn.imooc.com//climg/61711e51098bb79216460507.jpg

其他媒体查询条件下也这样计算,自己可以试试。

上面这样有些麻烦,简单方式是给img修改盒模型为border-box,让padding计算到宽度内,这样就不需要改变宽度了,间隙仍需要清除。参考:

https://img1.sycdn.imooc.com//climg/61711ef7096477d204690542.jpg

自己测试下,祝学习愉快!

  • 提问者 曼曼前端 #1

    https://img1.sycdn.imooc.com//climg/617125be09de2c4004970887.jpg

    我的浏览器最窄就是这个width,所以没法显示第一张,我以为我写错了呢

    2021-10-21 16:34:04
  • 提问者 曼曼前端 #2

    转为手机模式,是可以显示的,浏览器里面显示不了

    ,加了

    font-size: 0;也不行

    box-sizing: border-box;也不能显示第一张

    https://img1.sycdn.imooc.com//climg/617125be09de2c4004970887.jpg

    2021-10-21 16:39:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师