IE浏览器兼容性调解总结技能_玖富娱乐主管发布


玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。

媒介

近来项目做完,用户须要兼容IE,因而展开了兼容性的调解事情。边调解边想叹息IE真是个沙雕。。特将我碰到的题目纪录下来,和纪录我的解决办法,以下题目及解决办法,都是实在可用的,本身亲测~~

一、IE阅读器下,没有到达涌现转动条的前提,然则涌现了转动块的题目

转动块就是个灰色的方形,转动条的双方。涌现这类状况,一样平常是你的某个css文件,将哪一个处所的overflow设置成了scroll,以是强行涌现。改成overflow-y:auto便可。

二、IE阅读器下引入的款式不见效,其他阅读器一般

这个题目是因为IE阅读器对引入的资本做了限定。限定划定规矩总结一下: 

1、文档中只要前31个link或style符号联系关系的CSS能够或许运用。

2、一个style符号只要前31次@import指令有用运用。 3、一个css文件只要前31次@import指令有用运用。 4、@import最多可支撑4个级别。 5、一个css文件最多4095条划定规矩。 在网上看了一下道理,是因为IE9运用32位整数来举行标识,排序和运用级联划定规矩。整数的32位被分红5个字段,四个5位的sheetId和一个12位的ruleId。5位sheetID致使31 @import限定,12位ruleID致使4095划定规矩每张限定。 一样平常来说,这类限定大多数时刻都邑知足,能够说开辟框架引入了大批的冗余css,这类能够将页面须要的css提早,将页面不须要的css往后放。也能够接纳css兼并紧缩机制。

三、强迫ie以最新的版本形式对页面举行衬着

引见一行代码

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

X-UA-Compatible是IE8的一个专有<meta>属性,它通知IE8接纳何种IE版本去衬着网页,在html的<head>标签中运用。

Edge 形式通知 IE 以第一流形式衬着文档,也就是任何 IE 版本都以以后版本所支撑的第一流规范形式衬着,制止版本晋级形成的影响。

-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。-

简朴的说,就是甚么版本 IE 就用甚么版本的规范形式衬着。

chrome=1 这个并非IE模仿chrome,而是谷歌本身做的一个外挂:Google Chrome Frame(谷歌内嵌阅读器框架GCF)。这个插件能够让用户的IE阅读器外稳定,但用户在阅读网页时,实际上运用的是Google Chrome阅读器内核,而且支撑IE6、7、8等多个版本的IE阅读器

要运用chrome=1,要装置GCF,而且指定页面运用chrome内核来衬着。

参考文章链接:

https://blog.csdn.net/MEdwardM/article/details/52984648

https://www.cnblogs.com/chendc/p/5423337.html

四、IE下get要求报错:java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

这类题目是因为get衔接提交的参数中包含了特殊符号或中文字符。形成阅读器不认识,没有举行转义。 这类解决办法能够挪用encodeURI函数来对提交的变量举行一次转义。或许运用post提交的体式格局。  

五、IE下不设置配景色彩

关于配景色彩通明,我们运用了background:unset来举行设置,然则发明IE阅读器不见效,IE9不支撑unset属性。因而我们能够运用transparent属性。

六、IE下inout框中内容显现不全,点击时晃悠

基本是padding的题目,有多是其余css争执致使,可自行设置 加上important来提拔优先级。

七、IE9不支撑startwith与endswith函数

这类体式格局能够用substring函数来模仿运用。也能够本身重写一个函数来举行运用。 本身完成的函数以下:
String.prototype.startWith = function(s) { 
 if (s == null || s == "" || this.length == 0 || s.length > this.length) 
 return false; 
 if (this.substr(0, s.length) == s) 
 return true;
 else 
 return false; 
 return true; 
}

String.prototype.endWith = function(s) {
     if (s == null || s == "" || this.length == 0|| s.length > this.length)
          return false;
     if (this.substring(this.length - s.length) == s)
          return true;
     else
          return false;
    return true;
}

八、IE9不支撑flex结构

如今运用flex结构较多。能够完成相互之间的宽度互补。然则IE其实不支撑。

因而两个div的状况下,运用display:inline-block与float合营运用。同时须要对宽度来举行界说。

-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。