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

什么好主意吗?


当前回答

如果你只在一个图像上定义一个维度,图像的纵横比将始终保持。

问题是图像比你喜欢的更大/更高吗?

你可以把它放在一个DIV中,这个DIV被设置为你想要的图像的最大高度/宽度,然后设置overflow:hidden。那样会把你想要的东西都剪掉。

如果图像的宽度和高度都是100%,而你认为它太高了,这是因为保留了纵横比。您需要裁剪或更改纵横比。

请提供一些关于你具体想要完成的事情的更多信息,我会尽量帮助更多!

——根据反馈进行编辑——

你熟悉最大宽度和最大高度属性吗?你可以设置这些。如果你没有设置任何最小值,你设置了最大高度和宽度,那么你的图像将不会失真(纵横比将被保留),它将不会比最长的维度大。

其他回答

使用JQuery,因为CSS是一个普遍的误解(这里关于简单设计目标的无数问题和讨论表明了这一点)。

用CSS做你想做的事情是不可能的:图像的宽度应该是100%,但如果这个宽度导致高度太大,max-height应该应用-当然正确的比例应该被保留。

简单的解决方案:

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: 95%;
  max-height: 15em;
  width: auto !important;
}

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

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