利用CSS按比例缩小图片

上一篇 / 下一篇  2007-06-22 13:39:40 / 个人分类:网络技术

当然,生成缩略图这个工作如果交给程序来完成,效果会好很多,但是有时出于某种因素,例如服务器不支持GD之类的,难免就要请CSS代劳。

把一副大图片按比例缩小到某个尺寸,对于现代浏览器,直接使用max-width和max-height两条CSS属性即可。

对于IE 6.0及以下版本,以上两条CSS属性均不会被理会。之前处理这种事情,我们往往会借助Javascript,然后为图片加上onload事件。例如:

<img src="..." alt="..." onload="resizeImage(this)" />
<script type="text/javascript">
function resizeImage(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中再合适不过。

最终,把一副大图片按比例缩小到120px*120px以内,可以参照以下这段CSS:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--上面的html标示一定写正确,否则无效-->
<head>
<style type="text/css">
<!--
.thumbImage {
    max-width: 120px;
    max-height: 120px;
}
* html .thumbImage {
    width: expression(this.width > 120  this.width > this.height  120 : true);
    height: expresion(this.height > 120  120 : true);
}
-->
</style>
</head>

<body>
<table width="130"  border="1">
  <tr>
    <td align="center" valign="middle"><img src="  /images/zhu/1181743244605257129.jpg  " class="thumbImage"  /></td>
  </tr>
</table>
</body>
</html>


至于图片是如何保持其高宽比例的,这张图片可以解释:


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-07-23  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 21779
  • 日志数: 101
  • 图片数: 2
  • 商品数: 3
  • 书签数: 102
  • 建立时间: 2006-07-08
  • 更新时间: 2008-05-12

RSS订阅

Open Toolbar