首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整图像大小-宽度100%,最大高度

调整图像大小-宽度100%,最大高度
EN

Stack Overflow用户
提问于 2013-05-04 07:15:05
回答 2查看 4.7K关注 0票数 1

我想知道这是不是可能的。

我有一个内容区,我要在里面放一张图片。如果在宽度为100%的容器中放置后,它的高度小于800px,那么我希望它留在那里。如果它在宽度100%之后超过800px高,我想让它忽略width:100%行,并读取max-height行(或者做一些事情来缩小宽度的百分比),直到它低于800px高,同时保持它的纵横比。

例如。我有一个700px的容器宽度,图片600px宽,400px高,它将显示在700px宽x 500px高,因为宽度:100%。

例如。我有一个700px的容器宽度,图片是400px宽x 600px高。现在它将显示为700px宽900px高,宽度:100%代码,但我想要一段代码,它看到它超过了800px高的最大高度,因此触发了一些东西,使得宽度:100%被忽略,而不是max- height :800px线,这将使图片变得600px宽x 800px高。

我不能把max-height和width:100%放在同一个元素中,因为这样长宽比就不会保持不变。

EN

回答 2

Stack Overflow用户

发布于 2013-05-04 13:34:04

我不相信你可以用CSS做到这一点。我试着用一些简单的JS来做这件事,效果很好:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">

<style media="all">
div {width: 700px; background: #e7e7e7;}
img {width: 100%;}
</style>

</head>
<body>

<div>
    <img src="600x400.jpg" >
    <br>
    <br>
    <img src="400x600.jpg">
</div>

<script>
window.onload = imgSizer;
function imgSizer() 
{
    "use strict";
    var d = document, imgs, i, ii;
    imgs = d.getElementsByTagName("img");
    for (i=0, ii=imgs.length; i<ii; i+=1)
    {
        if (imgs[i].height > "800")
        {
            imgs[i].setAttribute("style", "height:800px; width: auto;");
        } else {
            imgs[i].style.maxWidth = "100%";
        }
    }
}
</script>
</body>
</html>

不过,我对JS完全陌生,所以可能有一种更好的方法来实现这一点。您还可以在此处查看示例:http://codepen.io/anon/pen/EsIBi

如果你愿意,你可以使用一点jQuery来解决这个问题:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">

<style media="all">
#content {width: 700px; background: #e7e7e7;}
img {width: 100%;}
</style>

</head>
<body>

<div id="content">
    <img src="http://pageaffairs.com/sp/so-16368859/600x400.jpg" >
    <br>
    <br>
    <img src="http://pageaffairs.com/sp/so-16368859/400x600.jpg">
</div>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script>
$(document).ready(function() {
    var imgs = $("#content").children('img');
    for (var i=0, ii=imgs.length; i<ii; i+=1)
    {
        if (imgs[i].height > "800")
        {
            imgs[i].setAttribute("style", "height:800px; width: auto;");
        } else {
            imgs[i].style.maxWidth = "100%";
        }
    }
});
</script>
</body>
</html>
票数 1
EN

Stack Overflow用户

发布于 2014-12-02 05:54:00

代码语言:javascript
复制
div img{   max-width: 100%; 
            max-height: 100%; 
        }
<div>
    <img src="">
</div>

有了这个技巧,你就可以获得类似于facebook的容器。对不起,我会说西班牙语..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16368859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档