2011-04-21 283 views
11

我想在小窗口中显示图像,但我需要保存图像的比例(我仍然希望人们可以知道它是什么)。 例如可以说图像是1000X200像素,并且有一个div定义为: height:100px; width:100px; 所以我想,图像的毅力写出这样的:如何调整到适合img标签?

<img src="asd.jpg" height=20 width=100 /> 

,而不是

<img src="asd.jpg" height=100 width=100 /> 

或不

<img src="asd.jpg"/> 

,然后有滚动..

我可以工作与百分比,但我怎么做...(并且它甚至单独工作百分比?)

+0

很好的解释:D – ShrekOverflow 2013-03-01 11:22:19

回答

29

如果设置max-height和CSS max-width,现代的浏览器将其限制在该尺寸,但保持宽高比是否正确:

<img src="asd.jpg" style="max-height: 100px; max-width: 100px;" /> 
+0

你能告诉我支持的浏览器吗?这看起来完全像我所需要的。 – Nir 2011-04-21 19:14:30

+0

@ user719001应该适用于任何IE7 +。见http://www.w3schools.com/Css/pr_dim_max-height.asp如果你需要IE6,你会受到伤害:\ – 2011-04-21 19:16:39

1

如果使用JavaScript,你可以简单地得到的高度和宽度图像并将其中一个除以获得比率,然后将div的高度和宽度与该比率相乘,然后将img尺寸设置为这些数字。

很明显,这是一个非常简单的方式来说,但我也不确定你是否想要使用JS或使用严格的CSS解决方案。

+0

事情是,我试图避免js。 – Nir 2011-04-21 19:16:31

+0

如果您愿意使用最大宽度和最大高度,无论如何都是更好的解决方案。 – Munzilla 2011-04-21 19:48:07

2

如果你的父母div有一套widthheight,您可以设置的最大宽度和最大高度的img100%

div { 
    width: 100px; 
    height: 100px; 
} 
div > img { 
    max-width: 100%; 
    max-height: 100%; 
} 

(它总是一个很好的做法,让图像MAX-宽度为100%,适用于手机浏览器等)

+0

这不会保留图像的纵横比,这就是问题所要求的。 – nickh 2012-05-06 03:08:03

+0

好点。然后将'width'和'height'设置为'auto'。 – Rudie 2012-05-07 21:08:53