当只给出宽度或高度时,所有浏览器是否按比例缩放图像?

时间:2012-08-01 02:48:55

标签: javascript image scaling dimensions dimension

我注意到,如果我只指定图片的一个维度,使用width标记上的heightimg属性或使用CSS,浏览器会自动缩放其他维度比例。

例如,如果我有一张100x150的图片,并且我指定了width="50"width:50px;,则浏览器会自动将高度设置为75像素。

这是否适用于所有浏览器?为了节省时间,我可以省略一个吗?我正在使用JavaScript预加载图像并动态插入它们,所以我不必担心下载时影响布局的图像。

1 个答案:

答案 0 :(得分:5)

是的,这是CSS2 specs

的一部分
  

[...]如果'width'的计算值为'auto','height'有一些   其他计算值,元素确实具有固有比率;   那么'width'的使用值是:

(used height) * (intrinsic ratio)

定义的CSS宽度或高度将在任何兼容CSS2的浏览器中正确缩放它们(我在IE6及以上版本中测试过它)。

我认为这是一个非常有用的功能。假设我有一个800px宽度布局的论坛,我允许用户上传图片。将帖子的图片设置为max-width:790px没有定义的高度(默认为height:auto)会自动使它们合适而不会破坏我的布局,同时保持正确的宽高比。整洁的东西。 注意:IE6不支持max-width

显然,如果您定义具有height的CSS width:auto,则同样适用。

这是一个Fiddle用于测试。显然,HTML属性也可以在几乎所有浏览器中正确扩展。但我仍然建议使用CSS进行元素样式,以保持一致性并保持标记清洁。样式应该通过CSS完成。