图片显示的问题

比如我有两张图片一张是750*600 另一张是1920*1080 把这两张图片放到两个一样大小的div里面怎样才能让它们比例不失真呢 如果给这两个div设置了一样的固定宽高比例肯定会失真 如果只设置宽度的话 虽然是等比例不会失真但图片的高度还是会差一点 但是根据网页的布局 这两个div宽高要一致 而且图片不能失真 一般这种情况怎么办呢?

阅读 4.8k
4 个回答

要想图片不失真,就等比例缩放。

第一种方式:写成背景图,显示图片的中间部分:

<style type="text/css">
            .wrap{
                width: 1200px;
                margin: 0 auto;
            }
            .box{
                width: 300px;
                height: 300px;
                border:1px solid #0066CC;
                float:left;
                margin: 10px;
            }
            .box1{
                background: url(1.jpg) no-repeat center 50%;
            }
            .box2{
                background: url(2.jpg) no-repeat center 50%;
            }
        </style>
        <div class="wrap">
            <div class="box box1"></div>
            <div class="box box2"></div>
        </div>

效果展示:

clipboard.png

预览:https://ityanxi.github.io/seg...

第二种方式:写在img里 ,给图片的宽高 都设为100%,会有一点点失真。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .wrap{
                width: 1200px;
                margin: 0 auto;
            }
            .box{
                width: 300px;
                height: 300px;
                border:1px solid #0066CC;
                float:left;
                margin: 10px;
            }
            .box img{
                width: 100%;
                height: 100%;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <div class="box box1"><img src="1.jpg"/></div>
            <div class="box box2"><img src="2.jpg"/></div>
        </div>
    </body>
</html>

效果展示:
clipboard.png
预览:https://ityanxi.github.io/seg...

第三种方式:给div加高度,超出的:overflow:hidden

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .wrap{
                width: 1200px;
                margin: 0 auto;
            }
            .box{
                width: 300px;
                height: 300px;
                overflow: hidden;
                border:1px solid #0066CC;
                float:left;
                margin: 10px;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <div class="box box1"><img src="1.jpg"/></div>
            <div class="box box2"><img src="2.jpg"/></div>
        </div>
    </body>
</html>

效果展示:

clipboard.png

预览:https://ityanxi.github.io/seg...

你把DIV固定了的话,图片只能按比例缩放了。问题是你都固定了DIV,怎么还会有两种尺寸差异大的图片呢?网站上的图片,都是私下里做成固定尺寸来准备好线上随时用的了,除非有一些放大镜效果的处理,才会临时加载大尺寸的图片。

我想到的和上面那位差不多……不过我觉得可以把高或宽设置一个100%,然后给外面那个DIV设个overflow:hidden,可以尽量保留下来多的面积的图片吧。

想要不失真,只能把多余的部分去掉了咯

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题