整理低版本ie兼容问题的解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整理低版本ie兼容问题的解决方案相关的知识,希望对你有一定的参考价值。

 

CSS hack

  \9    所有的IE10及之前

  *     IE7以及IE7以下版本的

      _     IE6以及IE6以下版本的

     !important  提升样式优先级权重

 

1、ie6,7,8对H5标签兼容

页面中引入html5shiv.js,下载地址:https://github.com/aFarkas/html5shiv

 

2、IE6双边距

当元素浮动后,再设置同方向margin,会产生双边距

解决:增加 

*display:inline;

  

3、IE6最小高度问题

  IE6下最小高度19px,想小于此高度,增加

*overflow:hidden;

  

4、li里元素都浮动 li 在IE6 7  下方会产生4px间隙问题

针对li添加

*vertical-align: top;

  

5、浮动元素之间注释,导致多复制一个文字问题

    两个浮动元素中间有注释或者内联元素并且和父级宽度相差不超过3px时,

      1)两个浮动元素中间避免出现内联元素或者注释
      2)与父级宽度相差3px或以上

 

6、IE6 7 父级元素的overflow:hidden 是包不住子级的relative

    针对ie6、7给父级元素添加相对定位

overflow: hidden;
*position: relative;

  

7、IE6下绝对定位元素父级宽高是奇数,绝对定位元素的right和bottom值会有1px的偏差

    避免父级宽高出现奇数

 

8、IE6下绝对定位元素和浮动元素并列绝对定位元素消失

    浮动元素和绝对定位元素是同级的话定位元素就会消失

      解决:不处于同级

 

9、IE6 下input的空隙

    给input元素添加float

 

10、display:inline-block

    IE6下使用

*display:inline;
*zoom:1;

  

11、margin兼容性问题   

    1)margin-top传递
    触发BFC、haslayout,父元素增加

overflow: hidden;
zoom:1;

    2)上下margin叠压

    尽量使用同一方向的margin,比如都设置top或者bottom

 

12、p 包含块元素嵌套规则

    不要嵌套

 

13、IE6下子元素超出父级宽高,会把父级的宽高撑开

    不要让子元素的宽高超过父级

 

14、第一块元素浮动,第二块元素加margin值等于第一块元素,在IE6下会有间隙问题; 

    1)不建议这么写
    2)用浮动解决

 

15、元素浮动之后,能设置宽度的话就给元素加宽度.如果需要宽度是内容撑开,就给它里边的块元素加上浮动

    浮动元素中存在块元素,给块元素增加float

 

16、IE6不支持png24 图片

    1)JS插件(问题:不能处理body之上png24) 
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/DD_belatedPNG_0.0.8a.js"></script>
		<script>
			DD_belatedPNG.fix("img, div");
		</script>
		<style>
			body{
				background-color: red;
			}
			div{
				width: 300px;
				height: 300px;
				background: url("img/png.png") no-repeat;
			}
		</style>
	</head>
	<body>
		<div></div>
		<img src="img/png.png"  />
	</body>
</html>

  

      2)原生滤镜

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/DD_belatedPNG_0.0.8a.js"></script>
		<script>
			DD_belatedPNG.fix("body");
		</script>
		<style>
			body{
				width: 500px;
				height: 500px;
				background:red url("img/png.png") no-repeat;
				_background-image:none;
				_filter : progid:DXImageTransform.Microsoft.AlphaImageLoader(src="img/png.png", sizingMethod="crop");
			}
		</style>
	</head>
	<body>
	</body>
</html>

  

以上是关于整理低版本ie兼容问题的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

jquery不兼容低版本ie浏览器怎么解决?

低版本IE浏览器不兼容placeholder解决方法

jquery不兼容低版本ie浏览器怎么解决办法

针对IE低版本兼容性问题的一些解决方案

解决ie 低版本的 background-size 兼容问题

兼容IE低版本的文件上传解决方案