如何在保持CSS宽高比的同时调整图像大小?

use*_*941 36 html css image

我有一个大图像.我希望在它自己的网页上显示它,并且在没有任何CSS的情况下执行此操作时,它会填满整个页面并且太大而无法立即显示(滚动条出现).我想缩小它以使其适合用户屏幕的高度(而不是宽度).我已经找到了解决方案,但这些解决方案可以拉伸图像以适应整个屏幕 - 我不希望这样,因为它会破坏纵横比.

基本上,我想在保持纵横比的同时调整图像大小.我该怎么做呢?

Jos*_*ber 44

只需设置widthauto:

img {
   width: auto;
   max-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

这是小提琴:http://jsfiddle.net/6Y5Zp/

  • @ user1447941 - 上面的代码正是如此. (2认同)

AKH*_*L P 22

这是样本之一

div{
   width: 200px;
   height:200px;
   border:solid
 }

img{
    width: 100%;
    height: 100%;
    object-fit: contain;
    }
Run Code Online (Sandbox Code Playgroud)
<div>
  <img src="https://upload.wikimedia.org/wikipedia/meta/0/08/Wikipedia-logo-v2_1x.png">
</div>
Run Code Online (Sandbox Code Playgroud)

  • 这是最简单的解决方案,但请注意IE不支持对象适合属性. (4认同)

Hof*_*ann 7

您可以使用带背景图像的div并设置background-size:contains:

div.image{
    background-image: url("your/url/here");
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以将div大小设置为您想要的任何值,不仅图像保持其纵横比,而且还可以纵向和横向集中.只是不要忘记在css上设置大小,因为div在标签本身上没有width/height属性.

尽管背景大小属性是> = 9.