IE8下的不兼容(一级)

Html和Css的hack兼容写法--->>推荐https://www.cnblogs.com/qiujianmei/p/7192481.html
            --->>推荐https://www.aliyun.com/jiaocheng/690542.html
            --->>推荐https://blog.csdn.net/Wbiokr/article/details/72758281
以下两点是第三个推荐连接的内容(直接写出来了,方便查看):
第一点、Css属性hack:
\9 //IE6/IE7/IE8/IE9/IE10都生效

\0 //IE8/IE9/IE10都生效,是IE8/9/10的hack

\9\0 //只对IE9/IE10生效,是IE9/10的hack

/*可以通过javascript检测IE10,然后给IE10的<html>标签加上class=”ie10″ 这个类 */

.ie10 #hack{
color:red; /* Only works in IE10 */
}

第二点、条件注释:
<!--[if !IE]>除IE外都可识别 <![endif]-->

<!--[if IE]> 所有的IE可识别 <![endif]-->

<!--[if IE 6]> 仅IE6可识别 <![endif]-->

<!--[if lt IE 6]> IE6以下版本可识别 <![endif]-->

<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->

<!--[if IE 7]> 仅IE7可识别 <![endif]-->

<!--[if lt IE 7]> IE7以下版本可识别 <![endif]-->

<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->

<!--[if IE 8]> 仅IE8可识别 <![endif]-->

<!--[if IE 9]> 仅IE9可识别 <![endif]-->

 

针对IE8部分属性的兼容:
1.rgba不兼容:
//一般的高级浏览器都支持
background: rgba(255,255,255,0.1);

//IE8下
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#19ffffff,endColorstr=#19ffffff);
第二句话的意思就是当上一行的透明度不起作用的时候执行。这句话的意思本来是用来做渐变的。但是这个地方不需要渐变。所以两个颜色都设置成了相同的颜色。
这个颜色“#19ffffff”是由两部分组成的。

第一部是#号后面的19 。是rgba透明度0.1的IEfilter值。从0.1到0.9每个数字对应一个IEfilter值。对应关系如运行截图所示。

第二部分是19后面的六位 。这个是六进制的颜色值。要跟rgb函数中的取值相同。比如rgb(255,255,255)对应#ffffff;就是白色。

rgba和IE下filter值的转换:
0.1---19,0.2---33,0.3---4C,0.4---66,0.5---7F,0.6---99,0.7---B2,0.8---C8,0.9---E5

2.background-size不兼容:
在IE浏览器中,可以通过滤镜filter来实现。样例:
.parent {
width: 400px;
height: 400px;
margin: 100px;
border: 1px solid red;
background: url(img/aaa.jpg) no-repeat center center;
background-size: 100% 100%;
/*针对IE8的hack,目的是除掉之前background*/
background: none\9;
/*下一行为关键设置*/
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/aaa.jpg', sizingMethod='scale');
};
原理:
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )
enabled:可选项。布尔值(Boolean)。设置或检索滤镜是否激活。 true:默认值。滤镜激活。 false:滤镜被禁止。
sizingMethod:可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。 crop:剪切图片以适应对象尺寸。 image:默认值。增大或减小对象的尺寸边界以适应图片的尺寸。 scale:缩放图片以适应对象的尺寸边界。
src:必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。

3.@media queries不兼容:
①http://www.dbmng.com/art-1659.html打开改地址下载respond.min.js
(respond.js/respond.min.js让IE6-8支持CSS3 Media Query)
②引入即可,建议放在head标签中css样式之后。
注意事项:
1、需要启动本地服务器(localhost),不能使用普通本地的url地址(file://开头);

2、需要外部引入CSS文件,将CSS样式书写在style中是无效的;

3、由于respond插件是查找CSS文件,再进行处理,所以respond文件一定要放置在CSS文件的后面;

4、另外,虽然把respond放置在head里还是在body后面都能够实现,但是建议放置在head中;

5、最好不要为CSS设置utf-8的编码,使用默认

4.box-shadow不兼容之使用IE下的滤镜方法:
filter: progid:DXImageTransform.Microsoft.Shadow(color='#969696', Direction=125, Strength=9);
说明: ①strength是阴影大小,direction是阴影方位,单位为度,可以为负数,color是阴影颜色 (尽量使用数字)
使用IE滤镜实现盒子阴影的盒子必须是行元素或以行元素显示(block或inline-block;)
②color不能缩写,比如#000000不能缩写为#000不然会出问题,设置失效。
③Direction=0,//上面有阴影,Direction=90,//右边有阴影,
Direction=180,//下边有阴影,Direction=270,//左边有阴影,

5.bootstrap导航栏不显示在IE8下的不兼容:
①在head中加上<meta http-equiv="X-UA-Compatible" content="IE=edge">
②在head中加上下面这段:
[if lt IE 9]
      <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    [endif]

转载于:https://www.cnblogs.com/xintao/p/10039274.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值