虽然微软已经停滞了IE10版本以下浏览器的技能支持,而大力推举IE11或者Edge,但是海内利用IE浏览器用户还是很多的。
日常开拓中兼容IE险些是前端开拓必要的一步,最低的可能会兼容到IE6,而浩瀚前端开拓者都知道,IE的各个版本之间都会涌现不兼容的情形(让人甚是头疼)。
这里大略总结下几种办法,通过添加条件注释和CSS,来达到使各种浏览器都表现出最佳的效果。

一、条件判断

条件判断可以判断特定的浏览器是否会实行一段代码,它只浸染于特定的浏览器,而其他的浏览器会忽略这段代码
相信大多数前端开拓者并不陌生,这种将额外的CSS注入到浏览器中,以补充此类浏览器在某方面不支持的标准方法。
例如,将下面的代码嵌入到某HTML页面中,

jsp页面兼容ie11兼容Internet Explorer 11的几个留意点Web运用法式 AJAX

上面代码中的注释将只会对IE浏览器起浸染,而且其他浏览器会把它当做注释忽略掉。
当然,你也可以在上图代码中指定IE浏览器的版本。
这样的话,比起重新做一个新的样式来兼容全部浏览器要节省韶光(有的大神喜好这样做)。
还有一点好处便是,这种办法不会须要浏览器去动态实行,它仅仅是在浏览器解析和下载这个页面的时候就已经生效了,可以节约性能。

二、常用的CSS命令

a、消逝的背景图像和文本

在IE中利用浮动元素的时候,背景图像和文本有时候会消逝,特殊实在页面滚动期间。
要办理这个问题,可以在利用的背景的CSS中添加代码,如 position: relative

b、无样式页面的闪烁

页面中,有时候在加载外部CSS模板之前,页面还处于无样式状态,这种状态会涌现一到两秒,加载完成之后又会规复正常,范例的情形便是FOUC(Flash of Unstyled Content)。
缘故原由也是比较能想到,便是HTML优先于CSS加载了,而一样平常是由于利用了import导入的样式表或者是将CSS放在页面最底部。
一样平常办理方法是在head里用link标签来导入CSS。

c、双边距缺点

在利用浮动元素的时候,有时会碰着它的边距变成了我们设置的两倍。
范例的像在IE6中,给父元素的第一个元素设置浮动的时候。
这时候,一样平常我们给浮动元素加上CSS display:inline,来办理此问题。

d、消逝的容器

在IE中,只支持高度和宽度,当一个容器的增在大于它指定的大小时,就会涌现这个问题。
这时候,我们一样平常为边距设置为负值,或者设置CSS 为 potision:relative 来办理。

e、Min-Height 属性

IE有一个不好的习气,它有时候会忽略掉这个属性,它会从我们设置最小的高度中获取一个,这常常会造成一些兼容性问题。
一样平常我们这样设置,如下

三、JS办法

除了设置CSS以外,适当的时候我们可以利用JS来调度样式。
例如在给按钮和超链接上利用背景图像的时候,背景图会闪烁不定。
这种征象是由于IE浏览器无法缓存背景图像,因此在不断重新加载。
这时候,我们可以添加以下代码来办理,

末了,不管我们的代码写的多么的好,都该当在不同的浏览器之间进行测试,这里只是总结了几种常见问题的处理办法,网上也有很多支持不同浏览器测试的工具。
牢记不要只测试一款浏览器就发布代码,客户看了可能会一团糟的(微笑)。