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 表示图片的高度。