把一副大图片按比例缩小到某个尺寸,对于现代浏览器,直接使用max-width和max-height两条CSS属性即可。
对于IE 6.0及以下版本,以上两条CSS属性均不会被理会。之前处理这种事情,我们往往会借助Javascript,然后为图片加上onload事件。例如:
<script type="text/javascript">
functionresizeImage(obj){
obj.width=obj.width>50&&obj.width>obj.height?50:auto;
obj.height=obj.height>50?50:auto;
}
</script>
这固然能解决问题,但是对以后页面的升级会带来麻烦——随着浏览器对CSS支持的完善,我们迟早会把图片上的onload事件统统去除。该是Expression的Show Time了,既然IE支持通过Expression在CSS中放置一些脚本,而这段脚本又只是提供给IE 6.0及以下版本使用,那么把它写到Expression中再合适不过。
最终,把一副大图片按比例缩小到50px*50px以内,可以参照以下这段CSS:
max-width:50px;
max-height:50px;
}
*html.thumbImage{
width:expression(this.width>50&&this.width>this.height?50:auto);
height:expresion(this.height>50?50:auto);
}
至于图片是如何保持其高宽比例的,这张图片可以解释:
以上只是对图片进行了缩放, 如果把一张图片作为背景,还可以用这种方法吗? 很明显不能.
我们需要更灵活的来处理这个需求. 请参考下面这个方法.
1. 用一个DIV里放一张图片,调整大小, 然后更改Z轴的值, 让它跑到别一个DIV的下面, 不就可以曲线实现背景图片缩放了吗?
<div id="fpdiv" style="z-index:1;position:absolute;width:1024px;height:727px;"><font color=#ffffff>上面的文字</font></div>
<div style="position:absolute;z-index:-1;width=1024"><img src="http://www.ce65.net/upload/opportnuity/2006-05-24/07/cata_12156/init548102.jpg"></div>
2.还可以用CSS滤镜来实现, 这个比较高级,我没有验证.大家仅供参考.
<html>
<body>
<table>
<tr>
<td style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://www.nowfs.com/kc/UploadFiles/2005620154136201.jpg', sizingMethod='scale');"
align="center" width=300 height=200>
</td>
</tr>
</table>
</body>
</html>