当前位置: 首页 > 图文教程 > 网络编程 > Javascript > js+css图片自动等比例缩小且垂直居中

Javascript
给初学者提供几本学习js值得看的书
Javascript----文件操作
Vml+Js算法:完成5个小球在网页运动(碰壁返回)的游戏,详细注释
Vml+Dhtml:制作一个应用渐变颜色效果不错的进度条
Dhtml+Js算法:5个小球运动的简化版,变通实现更简单的飞行的图片
Vml+Dhtml:小小的页面效果,叫它"淘气鬼"好了
判断客户浏览器是否支持cookie
几种常用的表单输入判断
CSDN无限级树数据库版(ASP+ACCESS)
JavaScript 寫遊戲 : 俄羅斯方塊
JavaScript 寫遊戲 : 搬吖
JavaScript 遊戲 : 貪吃蛇
JavaScript 寫時鍾日曆
VML:经典的图片叠加效果(灰色调)
一个简单的仿xp的js下拉菜单
JScript 寫 sortNode
关于javascript中数组元素删除问题的讨论
IE中非模式对话框(showModelessDialog)应用
Dhtml:用ondrag事件简单的实现鼠标拖动物件.
对WebUI技术感兴趣的说

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 115 ::
收藏到网摘: n/a

原文连接:http://www.ddcat.net/blog/archives/2007/10/188.html

  图片自动等比例缩小,其实如果不考虑ie6的话,用css就可以实现,设定img的max-width和max-height,而<img>标签内不设定widht和height即可。 

  ie7已经支持max-width和max-height,这是为数不多的好消息之一。 但是对于ie6及以前的版本,就只能用js来设置了。 

  在 ff 2.0/ ie6 / ie7 中测试通过。 opera 8.5 cn 垂直居中未通过,正在研究[貌似opera下如果只有图片行高会失效……]。希望大家来测试。

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