这代码实现的功能就是平常我们遇到的一个div里面包含img的时候,在img图片大小未知,div大小未知的情况下,让图片自适应大小,对于图片本身小于div容器大小时,不作处理。因为如果拉伸,图片可能就失真了。 废话不多说,直接上代码,已测试,兼容火狐,谷歌,IE6,IE7/8 以下是js代码: 复制代码 代码如下: <BR>window.onload=function(){ <BR>changeImgSize(); <BR>} <BR>function changeImgSize(){ <BR>var getContainer=document.getElementById('imgcontainer'); <BR>var getIMG=getContainer.getElementsByTagName('img')[0]; <BR>var fw=getContainer.offsetWidth-(2*getContainer.clientLeft); <BR>var fh=getContainer.offsetHeight-(2*getContainer.clientTop); <BR>var iw=getIMG.width; <BR>var ih=getIMG.height; <BR>var m=iw/fw; <BR>var n=ih/fh; <BR>if(m>=1&&n<=1) <BR>{ <BR>iw=Math.ceil(iw/m); <BR>ih=Math.ceil(ih/m); <BR>getIMG.width=iw; <BR>getIMG.height=ih; <BR>} <BR>else if(m<=1&&n>=1) <BR>{ <BR>iw=Math.ceil(iw/n); <BR>ih=Math.ceil(ih/n); <BR>getIMG.width=iw; <BR>getIMG.height=ih; <BR>} <BR>else if(m>=1&&n>=1) <BR>{ <BR>getMAX=Math.max(m,n); <BR>iw=Math.ceil(iw/getMAX); <BR>ih=Math.ceil(ih/getMAX); <BR>getIMG.width=iw; <BR>getIMG.height=ih; <BR>} <BR>if(getIMG.height<fh) <BR>{ <BR>var getDistance=Math.floor((fh-getIMG.height)/2); <BR>getIMG.style.marginTop=getDistance.toString()+"px"; <BR>} <BR>} <BR> 以下是html代码: 复制代码 代码如下: 以下是css代码: 复制代码 代码如下: .sy_pic{ width:200px; height:300px; border:#000 solid 5px; text-align:center;} 自己换下图片地址使用。有问题或者指教请加QQ群:255708401。