CSS样式兼容IE6、IE7、IE8、FF火狐浏览器的方法

时间:2022-12-19 19:43:29

 

   网页布局设计技术迄今为止主要有: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滤镜技术等,有兴趣的朋友可以和我一起谈讨。