分享

解决IE6.0图片缩小失真的问题

 昵称10095748 2012-05-31
做网站建设时应该经常需要对图片进行缩小,在IE6.0和IE7.0下图片缩小后会出现锯齿,非常难看。Firefox、chorme、IE8.0等浏览器则不存在这个问题, 天生就可以对缩放的图片进行柔化。其中IE7.0可以用-ms-interpolation-mode:bicubic; 来解决,不过这是IE7的私有属性。IE6.0则必须使用VML滤镜才能解决这个问题。

VML简介
VML的全称是Vector Markup Language(矢量标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量。VML是微软1999年9月附带IE5.0发布的,故只有IE5.0以上版本对VML提供支持。

操作步骤
  1. 处理需要使用的图片;
  2. 页面增加命名空间<htmlxmlns:v="urn:schemas-microsoft-com:vml">
  3. 增加CSS样式  v\:image{behavior:url(#default#VML);width:128px;height:128px;cursor:hand}
  4. 应用CSS样式:<v:imagesrc="http://www./png/phuzion/home.png" />
  5. 预览即可。

源代码

 <html xmlns:v="urn:schemas-microsoft-com:vml">

 <head>

  <title>VML</title>

  <style type="text/css">

v\:* { behavior: url(#default#VML);}

img{width:128px;height:128px;display:block;}

img.thumb{-ms-interpolation-mode: bicubic;}

  </style>

 </head>

 <body>

 VML:

<v:image src="http://www./png/phuzion/home.png" style="width:128px;height:128px;display:block"/>

 Old:

 <img src="http://www./png/phuzion/home.png" />

Bicubic:

 <img src="http://www./png/phuzion/home.png" class="thumb" />

 </body>

</html>


效果预览
下面是在IE6.0下分别使用三种不同方法的效果截图:原始图片是一张256*256px的png格式的图片,从图中可以看出,使用Bicubic在IE6.0下仍然还有很明显的锯齿,使用VML缩小的图片则非常清晰,并且还解决了在IE6.0下png图片的灰色背景问题。
 
 
注意事项
  1. 使用v:image,所以需要 xmlns:v="urn:schemas-microsoft-com:vml";
  2. v:image必须指定width和height,且display:block;
  3. 非IE浏览器不支持;
  4. 只对同网站的图片有效。对IE6动态跨域名的图片失真依然无效;
  5. 不支持getElementsByName以及getElementsByTagName获取dom,通过ID可以。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多