一些css兼容问题
由于各浏览器的不同,会存在一些兼容问题,特别是兼容IE6/7/8
下面简单介绍了一些解决方法,更多问题可以访问 W3help.org来查看。
可以通过js获取浏览器版本
document.body.innerHTML=navigator.userAgent
---
一些css兼容性问题
----
1、reset技术 如:
*{
margin:0;
padding:0;
}
//过于粗暴,不建议使用
2.CSS优先级:通过权重值
a.!important优先级最高 a=1 b,c,d=0
b.!imporant>id>伪类、class>元素、伪元素
id:b=1 a,c,d=0
伪类、class:c=1 a,b,d=0
元素、伪元素:a,b,c=0 d=1;
*为0
c.权重值越高优先级越高
3.CSS Hack技术 (打补丁、不能滥用),主要针对浏览器解析不同,不认识的属性会忽略它,利用它可以解决部分兼容问题。
1.IE6:属性前面加“_”。(只有IE6认识)
2.IE7:属性值后面加“*,+,>,<”。(“*,+,>,<” IE6、IE7都认识)。
3.IE8:属性值后面加“*\0”。(IE8认识\0和\9)。
4.IE6中浮动第一个出现双倍margin。
解决:_display:inline;
5.IE6,IE7高度塌陷
hasLayout(是否为布局 标签)值为true或者false
解决:zoom放大缩小,触发IE6,IE7中的hasLayout为true
(*zoom:1;)
非IE父元素跟随子元素移动 解决:加边框、overflow 、padding
6.图片默认间距
解决: float
7.IE6不支持min-height。
解决:_height/height:auto !important;
不支持min-width
//CSS表达式(尽量不用,要用就在IE6中)
_width:expression
(documentElement.clientWidth<500?"500px":"auto");
8.通过条件注释
<!--[if lte IE 6]>
这段内容只显示在版本小于等于IE6的
<![endif]-->
最新文章
- C#异步编程(二)
- h5容易遗忘的内容
- 了解了下 Google 最新的 Fuchsia OS
- 9. js实现java方法:HtmlUtils.htmlEscape()
- Prim算法(二)之 C++详解
- MySQL创建数据库和表的Demo
- WP老杨解迷:发布包多少大小合适
- json-lib 之jsonConfig具体应用
- android 解决启动页面加载图片空白以及去掉标题栏
- 如何将位图格式图片文件(.bmp)生成geotiff格式图片?
- 2014第8周一JS正则小问题
- Automap sqlalchemy.ext.automap 自动映射数据库表结构
- Hadoop平台基本组成
- ES的基本用法
- Git 安装和使用Tips
- Unity Button事件的简洁处理
- 自己理解Java中的lambda
- MVC源码分析 - Action/Result 过滤器执行时机
- 【代码笔记】iOS-去掉NSString中的空格
- ARM入门最好的文章