linux调整图片大小,[原]利用CSS调整图片大小

通常,我们可以给图片设置一个CSS属性,定义其高度和宽度。但有时候,我们只希望控制图片的最大可见大小。这样的操作,一般有两种办法:1.直接使用CSS属性值;2.使用JavaScript动态设置CSS值。

一、固定大小

一般,为了限制图片的大小,会使用下面的HTML属性值或CSS属性值来定义:

logo.gif

img {

width: 600px;

height: 500px;

}

但这样的设置太死板,不够灵活。

二、利用CSS属性值

img.qtipImg {

max-width: 500px;

width: 500px;

width:expression(this.width > 500 ? "500px" : this.width);

overflow:hidden;

}

这里定义了一个qtipImg类下面的img标签用CSS规则,通过max-width属性把图片控制在500px的宽度范围,并且是自适应比例的。

但是,各浏览器对该属性的支持并不一致,如IE6不支持该属性。

所以,后面又增加了一个expression的动作,该操作符后面括号中的语句是JavaScript脚本,用于动态的调整图片大小的。

而最后的,overflow:hidden 则是为了防止上述两属性定义失效时,将超出设置大小的部分隐藏起来,避免显示异常。

该设定经测试,在IE7、IE8、FireFox 3.5 下使用都很正常。

三、利用JavaScript 脚本

每个浏览器(包括版本不同)对CSS的支持都会有区别。例如:IE 8下就取消了对expression动作的支持。这时,利用JavaScript来调整图片大小也是一个不错的方法。但它的缺陷在于,使用纯JavaScript脚本,在图片下载期间,大小会溢出,直到下载完成,JavaScript才会把其大小调整到合适的值。

1、借助一个中转的Image对象

两个JavaScript函数:

function getImageSize(FilePath) {

var imgSize={width:0,height:0};

image=new Image();

image.src=FilePath;

imgSize.width = image.width;

imgSize.height = image.height;

return imgSize;

}

function fixImageSize(originalImage) {

fixSize = 500;

if ( originalImage.width > fixSize ) {

originalImage.height = Math.round( originalImage.height * fixSize / originalImage.width );

originalImage.width = fixSize;

}

return originalImage;

}

使用时,把图片的地址传递给这两个函数,返回值即为调整后的图片:

img = getImageSize("http://www.linuxfly.org/logo.gif");

img = fixImageSize(img);

finalresult = ''+filename+'';

2、在加载完DOM后即调整大小

虽然CSS的expression方式将会被取消,但直接使用JavaScript方式计算合适的CSS值还是一个不错的方法。例如jQuery的$(document).ready()方法可以避免加载图片时溢出的问题。

以下脚本来自:这里

$(document).ready(function() {

$('.post img').each(function() {

var maxWidth = 100; // 图片最大宽度

var maxHeight = 100;    // 图片最大高度

var ratio = 0;  // 缩放比例

var width = $(this).width();    // 图片实际宽度

var height = $(this).height();  // 图片实际高度

// 检查图片是否超宽

if(width > maxWidth){

ratio = maxWidth / width;   // 计算缩放比例

$(this).css("width", maxWidth); // 设定实际显示宽度

height = height * ratio;    // 计算等比例缩放后的高度

$(this).css("height", height * ratio);  // 设定等比例缩放后的高度

}

// 检查图片是否超高

if(height > maxHeight){

ratio = maxHeight / height; // 计算缩放比例

$(this).css("height", maxHeight);   // 设定实际显示高度

width = width * ratio;    // 计算等比例缩放后的高度

$(this).css("width", width * ratio);    // 设定等比例缩放后的高度

}

});

});

四、参考资料

用css让图片自动适应大小

用CSS語法 來控制圖片大小

动态调整图片尺寸

CSS中expression使用简介--IE8中不再使用的语法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值