DIV+CSS设计时IE6、IE7、FireFox 与兼容性有关的特性
[quote]因在制作论坛新版本程序的模板时,遇到IE6、IE7、FireFox下css样式不互相兼容,导致显示效果出现严重差异,颇为头痛。在网上搜索查询到以下相关资料,特地转载过来保存,以便查阅。[/quote]_(i~/Fxn[b]第一篇 DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性[/b]
Hst0xf
在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网站,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网页可能出现意料之外的效果! RF7[:f3Vf)e!k?
例子:
[list]3_ G*?}8iY$[Y)o
[*]所有浏览器 通用 height: 100px;
[*]IE6 专用 _height: 100px; e7Q,oO'd~
[*]IE6 专用 *height: 100px;,l*{'{GUg/C
[*]IE7 专用 *+height: 100px;
[*]IE7、FF 共用 height: 100px !important; LIE W6Y
[/list]I+B9hj,htJ@Fy2V F
7LeVB@}&Yw~tuX(S+`
[b]一、CSS 兼容[/b]:_ g/l _\B
以下两种方法几乎能解决现今所有兼容.
1, !important (不是很推荐,用下面的一种感觉最安全)
6IDoaiI&G
随着IE7对!important的支持, !important 方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前) 8}kNB'V,k*U
[code]<style>
#wrapper { ]%xH{m$_#HOc
width: 100px!important; /* IE7+FF */
width: 80px; /* IE6 */ %hIEg#YLS6\3OQ
} s Bj,Y@,M
</style>[/code] }-?"f3X Yj-xl
2, IE6/IE77对FireFox <from 针对firefox ie6 ie7的css样式>
,^u7_:c(N![ \6JV
*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签. *| V6ioh
[code]<style>
#wrapper { width: 120px; } /* FireFox */ y ]&y*|!ak6O.{1d
*html #wrapper { width: 80px;} /* ie6 fixed */
*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */ y:fP1OZzD#m
</style>[/code] |2N&V \h
注意:*+html 对IE7的兼容 必须保证HTML顶部有如下声明: "N B#w@!^+eM6T
[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> [/code]
[b]二、万能 float 闭合[/b] ([color=Red]非常重要[/color]) 0H*Sxg|z$K
可以用这个解决多个div对齐时的间距不对,将以下代码加入Global CSS 中,给需要闭合的div加上 class=”clearfix” 即可,屡试不爽.
[code]<style> _d8D ap6F/B
/* Clear Fix */
.clearfix:after {
content:"."; lm CU#Kj/g.y
display:block;
height:0; 0~3R,D[!jSO| er
clear:both; p;no?8s8u3m1U a%[6t
visibility:hidden;
}
.clearfix { d5AM"i^G'f [
display:inline-block; j3cu5}'t@sB |/N
}
/* Hide from IE Mac \*/ P3^#O6HYPa
.clearfix {display:block;}
/* End hide from IE Mac */
/* end of clearfix */
</style> [/code]2W*v wLR
.b,F.MW/D:p*s
[b]三、其他兼容技巧[/b] ([color=Red]相当有用[/color])
6T4SY2Fi@7X
1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决)