[整合]利用CSS + Javascript 缩小背景图片

当然,生成缩略图这个工作如果交给程序来完成,效果会好很多,但是有时出于某种因素,例如服务器不支持GD之类的,难免就要请CSS代劳。
  把一副大图片按比例缩小到某个尺寸,对于现代浏览器,直接使用max-width和max-height两条CSS属性即可。
  对于IE 6.0及以下版本,以上两条CSS属性均不会被理会。之前处理这种事情,我们往往会借助Javascript,然后为图片加上onload事件。例如:

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
  <imgsrc="..."alt="..."οnlοad="resizeImage(this)"/>
  <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:

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
  .thumbImage{
  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>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值