前言
最近项目做完,用户需要兼容IE,于是开展了兼容性的调整工作。边调整边想感叹IE真是个沙雕。。特将我遇到的问题记录下来,以及记录我的解决办法,以下问题及解决办法,都是真实可用的,本人亲测~~
一、IE浏览器下,没有达到出现滚动条的条件,但是出现了滚动块的问题
滚动块就是个灰色的方形,滚动条的两边。出现这种情况,一般是你的某个css文件,将哪个地方的overflow设置成了scroll,所以强行出现。改为overflow-y:auto即可。
二、IE浏览器下引入的样式不生效,其他浏览器正常
这个问题是因为IE浏览器对引入的资源做了限制。限制规则总结一下:
1、文档中只有前31个link或style标记关联的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
五、IE下不设置背景颜色
六、IE下inout框中内容显示不全,点击时晃动
七、IE9不支持startwith与endswith函数
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配合使用。同时需要对宽度来进行定义。