js+css图片自动等比例缩小且垂直居中

图片自动等比例缩小,其实如果不考虑ie6的话,用css就可以实现,设定img的max-width和max-height,而<img>标签内不设定widht和height即可。 ie7已经支持max-width和max-height,这是为数不多的好消息之一。 但是对于ie6及以前的版本,就只能用js来设置了。 在 ff 2.0 / ie6 / ie7 / op 8.5+ / sa 3 中测试通过。 不过垂直方向在 ff 和 sa 中稍微有些错位,还需解决。 希望大家来测试找bug 注意:垂直居中的关键在于文档的dtd类型!!

<!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"> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 

<title>图片自动等比例缩小且垂直居中</title> 

<!--[if lte IE 6]> 

<script type="text/javascript" language="javascript"> 

function imgFix() { 

  //定义要限制的图片宽高,这个宽高要同style里面定义的相同,小于限定高宽的图片不操作 

  var widthRestriction = 200; 

  var heightRestriction = 200; 

  var allElements = document.getElementsByTagName('*')    

  for (var i = 0; i < allElements.length; i++) 

  { 

    if (allElements[i].className.indexOf('imgBox') >= 0) 

        { 

      var imgElements = allElements[i].getElementsByTagName('img'); 

      for (var j=0; j < imgElements.length; j++) 

          { 

        if ( imgElements[j].width > widthRestriction || imgElements[j].height > heightRestriction ) 

                { 

          if ( imgElements[j].width > imgElements[j].height)  


                  { 

            imgElements[j].height = imgElements[j].height*(widthRestriction/imgElements[j].width); 

            imgElements[j].width = widthRestriction; 

          } else 

                  { 

            imgElements[j].width = imgElements[j].width*(heightRestriction/imgElements[j].height); 

            imgElements[j].height = heightRestriction; 

          }  



        } 

                if ( imgElements[j].height < heightRestriction ) 

                { 

                  imgElements[j].style.paddingTop = ( heightRestriction -imgElements[j].height ) /2 + "px"; 

                } 

      } /*for j*/ 

    } 

  }/*for i*/ 

} 

window.onload = imgFix; 

</script> 

<![endif]--> 

<style type="text/css">  

<!-- 

* { 

margin:0; 

padding:0; 

} 

.imgBox li { 

list-style:none; 

width:200px;  /* 宽度 */ 

height:200px; /* 高度 */ 

background:#ccc; 

border:1px solid #666; 

text-align:center; 

margin:5px; 

line-height:200px; 

} 

.imgBox img { 

max-width:200px;  /* 宽度 */ 

max-height:200px; /* 高度 */ 

vertical-align:middle; 

} 

--> 

</style> 

</head> 



<body> 

<ul class="imgBox"> 

  <li><img src="......" alt="img" /></li> 

  <li><img src="......" alt="img" /></li> 

  <li><img src="......" alt="img" /></li>  

  <li><img src="......" alt="img" /></li> 

</ul> 

</body> 

</html> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值