IE6 IE7 IE8图片等比例缩小问题

SJY发表于:2014年08月25日 11:00 • 阅读:

IE7、IE8设置max-width后,把高度设为auto,当图片宽度超过设置的最大宽度后,会自动缩小到设置的max-width值,但是高度并没有我们预想的按比例缩小。而在firefox中却可以完美的按比例缩小图片。

IE6更是不支持 max-width 和 max-height,那如何来处理各个浏览器的兼容性问题呢,使之都可以设置图片最大宽度,且高度根据图片的宽度等比例缩小呢?

有些人说了,在CSS中给IE6使用expression不就行了?我可以告诉你expression非常耗资源,不值得用,具体可以参考 是否该使用IE浏览器特有的expression

使用 JavaScript 写个函数直接调用,既方便又高效。除了支持IE6,也支持其它浏览器,如IE7、IE8、火狐等。

程序的大概思路是:首先获取图片所在的父层(如div)ID,然后再循环处理该层的所有图片。如果图片的实际宽度大于传入的宽度(w),则根据传入的宽度(w)计算出图片新的高度(newHeight);如果新的高度(newHeight)小于等于传入的高度(h),则以新高度(newHeight)和传入的宽度(w)作为图片的当前高度和宽度;否则以传入的高度和新计算的宽度作图片的当前高度和宽度。如果图片的实际宽度小于等于传入的宽度(w),也是一样的道理。具体函数如下:

解决IE6图片按比例缩小

调用方法:checkImage(parentNode,width,height)

参数说明:parentNode 表示图片父对象 ID;

  • width 表示图片的宽度; 
  • height 表示图片的高度。

欢迎转载,但请保留原文地址 http://www.sjyhome.com/css/ie6-ie7-ie8-image-equal-scaling.html

标签: 等比例

回复(0)