IE6&7下使用CSS3(ie-css3.htc的使用及加强版)


做前端的同学都应该听说或者用过,是一段脚本,可以让ie实现css3里的圆角和阴影效果。

css带来的便利是很容易感受的到的,但恶心的是它在ie下的不兼容,所以某位牛人现身写了个ie-css3.htc,允许你在ie下去使用css3的部分东西。

ie-css3的使用方法很简单,在你需要使用css3的样式里加入behavior: url(js/ie-css3.htc);就可以了(括号里是ie-css3.htc的地址)

ie-css3.htc

http://fetchak.com/ie-css3/

用法大致如下:

1
2
3
4
5
6
7
8
9
10
11
.box {
     -moz-border-radius: 15px ;                /* Firefox */
     -webkit-border-radius: 15px ;             /* Safari and Chrome */
     border-radius: 15px ;                     /* Opera 10.5+, future browsers, and now also Internet Explorer 6+ using IE-CSS3 */
 
     -moz-box-shadow: 10px 10px 20px #000 ;    /* Firefox */
     -webkit-box-shadow: 10px 10px 20px #000 ; /* Safari and Chrome */
     box-shadow: 10px 10px 20px #000 ;         /* Opera 10.5+, future browsers and IE6+ using IE-CSS3 */
 
     behavior: url (ie-css 3 .htc);              /* This lets IE know to call the script on all elements which get the 'box' class */
}

ie-css3.htc 加强版

最近用到了这个东西,发现动态改变div的内容之后,这段脚本生成的vml会出现变形。。
所以加了一个手动刷新的函数,通过innerHTML赋值之后调用一下就可以了

1
2
el.innerHTML = '....' ;
if (window.update_css3_fix) update_css3_fix(el);

如果使用jquery就不用这么麻烦,在你的框架里加一段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
( function ()
{
     if (!jQuery.browser.msie) return ;
     jQuery.fn.__ohtml__ = jQuery.fn.html;
     jQuery.fn.html = function (value)
     {
         jQuery( this ).__ohtml__(value);
         this .each( function ()
         {
             update_css3_fix( this );
         });
         return this ;
     };
})();

另外官网下载的脚本还会产生yourdomain/none的404请求,也已经修复

下载增强版ie-css3.htc

http://files.cnblogs.com/aiyuchen/ie-css3.htc.zip

下面是我对ie-css3.htc的测试。

经过测试,在ie678下:

  • 都见到了可喜的圆角
  • 阴影颜色不能控制,是默认的黑色
  •  可喜可贺。text-shadow 和 word-wrap一切效果正常。但有一点,如果不使用换行,在你写死元素宽度后,内置文字如果太长会溢出,但在ie6下,元素的宽度会与文字适应。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值