我注意到,如果我只指定图片的一个维度,使用width
标记上的height
和img
属性或使用CSS,浏览器会自动缩放其他维度比例。
例如,如果我有一张100x150的图片,并且我指定了width="50"
或width:50px;
,则浏览器会自动将高度设置为75像素。
这是否适用于所有浏览器?为了节省时间,我可以省略一个吗?我正在使用JavaScript预加载图像并动态插入它们,所以我不必担心下载时影响布局的图像。
答案 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完成。