CSS样式兼容IE6、IE7、IE8、FF火狐浏览器的方法
网页布局设计技术迄今为止主要有:table表格布局,DIV+CSS布局以及层布局。目前的网页布局设计领域主流是以DIV+CSS布局为主,table表格布局和层布局为辅。另外我还要告诉你一个秘密,那就是以DIV+CSS技术设计的网页是很招搜索引擎喜欢的哦!
呵呵!先说正经的吧!
一、!important 兼容IE6
因为IE7及其以上版本对!important的支持, 所以!important 方法就可以很好的用来做IE6的兼容了。(切记声明位置需要提前。)
例如:
#right {
width: 600px !important; /* IE7+FF */
width: 620px; /* IE6 */
}
二、CSS HACK的方法
首先说明一下:
所有浏览器 通用 width: 100px;
IE6 专用 _ width: 100px;
IE7 专用 *+ width : 100px;
IE6、IE7 共用 * width: 100px; (这个用处貌似不大哈)
IE7、FF 共用width: 100px !important;
下面新乡举几个例子
第一种:IE6 - IE7-FF
.div { margin:10px;/*ff*/
*margin:15px;/*ie7*/
_margin:15px;/*ie6*/ }
或者
.div { margin:10px;/*ff*/
_margin:15px;/*ie6*/
*margin:15px;/*ie7*/
}
第二种:(IE6 +IE7)-(FF)
.div { margin:10px;/*ff*/
*margin:15px;/*ie7+ie6*/
}
第三种:IE6 – (IE7+FF)
.div { margin:10px;/*IE7+ff*/
_margin:15px;/*ie6*/
}
第四种:(IE6+FF) - IE7
.div { margin:10px; /*ie6+ff */
*+margin:15px; /*IE7 */
}
特别针对IE6的双倍间距:{ 一般IE6出现双倍间距 主要是float属性的原因,这里我们只要对该标签加上 display:inline就OK了 }
需要注意的是,代码的顺序一定不能颠倒了,要不又前功尽弃了。因为浏览器在解释重名的CSS属性时,会用后面的覆盖前面的,就象给变量赋值一个道理,所以我们把通用的放前面,越专用的越放后面。不明白的可以Q我!
还有一点:*+html 对IE7的兼容必须保证HTML顶部有如下声明:
另外还有其他的方法比如:使用IE专用的条件注释、css filter滤镜技术等,有兴趣的朋友可以和我一起谈讨。