html css背景图缩放ie,ie8 用css实现图片的等比例缩放

为了使图片不是真,需要进行图片的等比例缩放。

之前在网站上发现所有浏览器都没问题,唯独ie8出现这个问题,因为之前的系统win8无法安装ie8,没有测试环境以至于这个问题存在了很长时间。今天在另一个哥们的电脑上把ie6升级到ie8,经过反复的测试,最终发现解决方法。 “打开所用主题的style.css文件,找到.post-content img{,如果没有的话直接添加,在后面加上如下代码:

1

2

3

max-width:600px; width: expression(this.width > 600 ? "600px" : true); height:auto;

这里的.post-content img{不是固定的,不同的主题可能不同。

max-width: 600px: 代码中的这个部分针对Firefox/Opera浏览器,限制对象的最大宽度为600px。此代码对IE无用,为了让IE也能限制对象宽度,所以在代码中加入第2行代码,用IE提供的expression命令,使所有图片的宽度自动缩小或放大至600px。”

在我的博客使用旧模板时,这种方法一直工作得很好,在各主流浏览器下均能实现图片的等比例缩放。然而在更换了模板之后,同样的方法,却无法在IE8中实现同样的效果。在IE8中,图片仅是宽度被缩放了,而高度仍旧不变,显得非常难看。

对于这个问题,Ann给了我几个解决的方案:

1. 在head中增加meta标签如下

1

2.css样式改成:

a img.aligncenter {

display:block;

margin-left:auto;

margin-right:auto;

max-width:700px;

_width:expression(this.width<700px?"auto":"700px");

}

3. 或者在问题页面+

function changimgsize(){

var imgs = document.getElementById("page").getElementsByTagName("img");

var imgwidth=600;

for(i=0; i

if(imgs[i].width>imgwidth){

var oW = imgs[i].width;

var oH = imgs[i].height;

var rate = oH/oW;

imgs[i].width = imgwidth;

imgs[i].height = imgwidth*rate;

}

}

}

window.οnlοad=changimgsize;

通过对比,发现旧模板正是比新模板多了一个如第一方案中的meta标签,在header.php中加入此标签,问题解决。至于方案二和方案三,未做测试,不知可行与否。

补充:对于 IE 8,如果不使用加 meta 标签的方法,那么就需要在第一个 CSS 样式中补充一个“width:auto;”,才能正常实现限制最大宽度的图片等比例缩放,即:

width:auto;

max-width:600px;

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

height:auto;

但是这样一来,浏览器可能会无视 img 标签中设置的尺寸。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值