IE兼容性

其他浏览器会将其作为注释而忽略这些语句,他们是IE专门提供的一种语法

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
    <!--[if IE]> 所有的IE可识别 <![endif]-->
    <!--[if IE 6]> 仅IE6可识别 <![endif]-->
    <!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
    <!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
    <!--[if IE 7]> 仅IE7可识别 <![endif]-->
    <!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
    <!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
    <!--[if IE 8]> 仅IE8可识别 <![endif]-->
    <!--[if IE 9]> 仅IE9可识别 <![endif]-->
  • bootstrap4对于IE的兼容:
<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
.row:after{content:'';display:table;clear:both;}

IE=edge表示强制使用IE最新内核,chrome=1表示如果安装了针对IE6/7/8等版本的浏览器插件Google Chrome Frame(可以让用户的浏览器外观依然是IE的菜单和界面,但用户在浏览网页时,实际上使用的是Chrome浏览器内核),那么就用Chrome内核来渲染

<!--[if IE 9]> 
<link href ="https://cdn.jsdelivr.net/gh/coliff/bootstrap-ie8/css/bootstrap-ie9.min.css" rel ="stylesheet"> 
<!-- <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script> -->
<!-- <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script> -->
<script src ="https://cdn.jsdelivr.net/gh/coliff/bootstrap-ie8/js/bootstrap-ie9.min.js"></script>
<![endif ]--> 
  • boostrap3对于IE的兼容
<!--[if lt IE 9]>
<script src="http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<script src="http://apps.bdimg.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
  • object-fit 兼容IE
    引入云盘js文件polyfill.object-fit.min.css /// polyfill.object-fit.min.js;
<script>
    document.addEventListener('DOMContentLoaded', function () {
        objectFit.polyfill({
            selector: '.empowerment img',
            fittype: 'cover'
        });
    });
</script>
  • IE6/7/8/9兼容CSS样式

    1 使用 PIE.htc
    behavior:url(PIE.htc);
    pie.htc是一个可以解决IE6/7/8无法支持CSS3属性的文件,其利用VML绘制相关的效果。要注意的是它并不能实现所有CSS3效果,其兼容的属性有:box-radius,线性渐变(linear-gradient),rgba,box-shadow,border-image
    使用behavior:url(pie.htc)引入pie.htc即可完成相关效果了。以下实例均使用IETester进行测试,主要测试IE6/7/8的效果

官方使用教程 http://css3pie.com/documentation/supported-css3-features/

(1) 圆角(border-radius)

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title></title>
   <style type="text/css">
       .demo{
           height: 100px ;
           width:200px;
           border:1px solid #00FFFF;
           -webkit-border-radius: 5px;
           -moz-border-radius: 5px;
           border-radius: 5px;
           behavior: url(static_resources/PIE.htc);
       }
   </style>
<body>
   <div class="demo"></div>
</body>
</html>
圆角

(2) 盒阴影(box-shadow)

.demo{
    height: 100px ;
    width:200px;
    background: #00FFFF;
    -webkit-box-shadow: 10px 10px 5px #888888;
    -moz-box-shadow: 10px 10px 5px #888888;
    box-shadow: 10px 10px 5px #888888;
    behavior: url(static_resources/PIE.htc);
}
盒阴影

(3) RGBA

.demo{
    height: 100px ;
    width:200px;
    background: rgba(0,0,0,0.5);
    -pie-background:rgba(0,0,0,0.5);
    behavior: url(static_resources/PIE.htc);
}
RGBA

(4) border-image

.demo{
    height: 100px ;
    width:200px;
    border:15px solid transparent;
    -webkit-border-image: url(img/border.png) 30 30 round;
    -moz-border-image: url(img/border.png) 30 30 round;
    -o-border-image: url(img/border.png) 30 30 round;
    border-image: url(img/border.png) 30 30 round;
    behavior: url(static_resources/PIE.htc);
}

IE6/7/8只会以stretch的形式进行填充,即使border-image-repeat属性是repeat和round

Chrome下的效果


border-image

IETester下的效果


border-image

(5) background-size

.demo{
    height: 100px ;
    width:200px;
    background-image: url("img/1.jpg");
    background-size: cover;
    behavior: url(static_resources/backgroundsize.min.htc);
}

针对兼容background-size使用了backgroundsize.htc,支持IE7/8,无法支持IE6

background-size

(6) Gradient背景渐变(支持线性渐变)

.demo{
    height: 100px ;
    width:200px;
    background:linear-gradient(90deg,#00FFFF,#0000FF);
    -pie-background:linear-gradient(0,#00FFFF,#0000FF);
    behavior: url(static_resources/PIE.htc);
}
背景渐变
  1. z-index相关问题
    IE下这些CSS3效果实现是借助于VML,由VML绘制圆角或是投影效果的容器元素,然后这个容器元素作为目标元素的后兄弟节点插入,如果目标元素position:absolute 或是 position:relative,则这个css3-container元素将会设置与之一样的z-index值,在DOM tree中,同级的元素总是后面的覆盖前面的,所以这样就实现了覆盖,又避免了可能有其他元素正好插入其中。

    所以,问题来了,如果目前元素的position属性为static,也就是默认属性,则z-index属性是没有用的,无覆盖可言,所以此时IE浏览器下CSS3的渲染是不会成功的。要解决也很简单,设置目标元素position:relative或是设置祖先元素position:relative并赋予一个z-index值(不可为-1)。

  2. 相当路径的问题
    IE浏览器的behavior 属性是相对于HTML文档而言的,与CSS其他的属性不一样,不是相对于CSS文档而言的。这使得使用pie.htc文件不怎么方面。如果绝对路径于根目录,则CSS文件不方便移动;如果相对路径与HTML文档,则pie.htc文件在不同HTML页面见的重用性大大降低。同时,诸如border-image后面的URL属性路径也不好处理。

  3. 缩写的问题
    使用PIE实现IE下的CSS3渲染(其他方法也是一样),只能使用缩写的形式,例如圆角效果,我们可以设置border-top-left-radius表示左上圆角,但是PIE确实不支持这种写法的,只能是老老实实的缩写。

https://blog.csdn.net/clh604/article/details/11475783

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容

  • 代码兼容:IE7及以上,360浏览器,搜狗浏览器,谷歌,火狐,欧朋等等。 一.需要注意的地方: 1.写好标准头: ...
    瞳孔里的温柔你看得见不阅读 663评论 0 1
  • 1.在IE下margin无用时改为padding 2.IE9以后placeholder无效,引入以下js htt...
    Leikawo阅读 321评论 0 0
  • 对于IE的兼容性问题早有耳闻,也在网上搜索过有关信息,内心有过触动但也没有达到深恶痛绝的地步。直到最近,由于公司开...
    hddwsz阅读 726评论 0 3
  • 1.如果图片加a标签在IE9-中会有边框 -img{border:none} 2.rgba不支持IE8 -opac...
    努力为爱阅读 2,158评论 0 11
  • IE6透明png问题,CSS解决方案,注意这里的src与url不一样 background-repeat: no-...
    _陈慧敏阅读 345评论 0 0