功能不能实现

功能不能实现

<!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回答
好帮手慕久久 2022-03-05 10:40:50

同学你好,解答如下:

图片之所以被压缩,是因为设置的宽高与原始宽高不成比例。如果图片原始大小是100*200的,你把它强制改成200*400是不会变形的(宽高比例没有改变),但是如果改成100*300的(不成比例),就会变形。

代码中,图片的宽度是变化的,但是高度写死了,所以导致图片变形。建议不设置固定高度,让高度自动计算:

https://img1.sycdn.imooc.com//climg/6222cd9609e9c9cf07340252.jpg

flex-shrink这个属性,不会让图片宽高成比例变化,所以设置它没用。

祝学习愉快!

好帮手慕然然 2021-10-21 15:01:15

同学你好,原因如下:以显示器宽度大于960px时,图片呈一行4列布局为例

首先,内边距和外边距设置成百分比,与设置成px像素的算法是一样的,都是按照盒子模型来计算

其次,根据盒子模型: 总宽度 = img宽度 * 4 + 1.5% (左padding)+ 1.5%(右padding),如果img宽度设为25%,计算结果大于100%,所以一行肯定显示不下四张图片。

另外,因为html代码书写的时候存在换行,换行也是占据一定空间的,所以img宽度的设置也需要考虑换行所占的空间,如图

https://img1.sycdn.imooc.com//climg/6171102c0911603f08970843.jpg

祝学习愉快!


  • 提问者 曼曼前端 #1

    为什么一张图片的显示不了?

    2021-10-21 15:03:50
  • 好帮手慕然然 回复 提问者 曼曼前端 #2

    同学你好,道理是一样的,如果显示一张图片,此时图片宽度应该小于:100%-1.5%-1.5% = 97%,只要图片宽度小于97%就可以,代码如下

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

    祝学习愉快!

    2021-10-21 15:56:24
  • 好帮手慕然然 回复 提问者 曼曼前端 #3

    另外,建议同学将浏览器调成以下模式查看效果,可能是浏览器无法缩放到那么小导致的,如图

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

    2021-10-21 15:59:29
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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