目前,使用STYLE,我可以使用width: 100%和auto on height(反之亦然),但我仍然不能将图像约束到特定的位置,要么太宽,要么太高,分别。

什么好主意吗?


当前回答

通过将CSS的max-width属性设置为100%,图像将填充它的父元素的宽度,但不会呈现比它的实际大小更大,从而保持分辨率。

将height属性设置为auto可以保持图像的纵横比,使用这种技术可以覆盖静态高度,并使图像能够在各个方向上按比例伸缩。

img {
    max-width: 100%;
    height: auto;      
}

其他回答

我想这就是你要找的东西,我自己也在找,但在我找到密码之前我又想起来了。

background-repeat: repeat-x;
background-position: top;
background-size:auto;
background-attachment: fixed;

数字进化正在进行中。

简单的解决方案:

min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
margin: 0;
padding: 0;

顺便说一下,如果你想把它放在父div容器的居中,你可以添加这些css属性:

position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

它应该真的像预期的那样工作:)

最好在应该尊重纵横比的尺寸上使用auto。如果你没有将另一个属性设置为auto,现在大多数浏览器会假设你想要尊重纵横比例,但不是所有的浏览器都这样(例如,windows phone 8上的IE10就不这样)。

width: 100%;
height: auto;

也有同样的问题。对我来说,问题是高度属性也已经在其他地方定义,像这样固定它:

.img{
    max-width: 100%;
    max-height: 100%;
    height: inherit !important;
}

其中一个答案包括background-size: contains css语句,我很喜欢这个语句,因为它直接说明了你想做什么,浏览器就会完成它。

不幸的是,迟早你会需要应用一个阴影,不幸的是,它不会很好地与背景图像解决方案。

假设你有一个响应性很强的容器,但是它对最小和最大宽度和高度有很好的定义。

.photo {
  max-width: 150px;
  min-width: 75px;
  max-height: 150px;
  min-height: 75px;
}

容器有一个img,它必须知道容器高度的像素,以避免得到一个非常高的图像,溢出或裁剪。

img还应该定义一个max-width为100%,首先是为了允许更小的宽度被渲染,其次是基于百分比的,这使得它成为参数。

.photo > img {
  max-width: 100%;
  max-height: 150px;
  -webkit-box-shadow: 0 0 13px 3px rgba(0,0,0,1);
  -moz-box-shadow:    0 0 13px 3px rgba(0,0,0,1);
  box-shadow:         0 0 13px 3px rgba(0,0,0,1);
}

注意,它有一个漂亮的阴影;)

享受一个活生生的例子在这小提琴:http://jsfiddle.net/pligor/gx8qthqL/2/