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)
下载地址:http://www.dillerdesign.com/experiment/DD_belatedPNG/#download
<!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>