DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性
上一篇 / 下一篇 2008-07-07 11:53:27 / 個人分類:WEB
在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果!
w%y G4@ d*W*wTTi0]1W,?"d8e-gb^B'K0所有浏览器 通用
*d ^ a#Tx}s0height: 100px;若鄰博客0Y,G*s~8w:F%Rl}8YZpe
IE6 专用若鄰博客
UFuE\a8N5w
_height: 100px;
FKx8?m|9J.D0IE6 专用若鄰博客
WF4B"J_
K3lK
*height: 100px;
d
a j.T E ` H*|4{0IE7 专用若鄰博客x.iE_1dZq*B"A
*+height: 100px;
#C)sa:Ex,W\"r9A+D4Q0IE7、FF 共用若鄰博客|#V(S
F C j+\:]
height: 100px !important;若鄰博客
L%f[g1x(q{
若鄰博客"N t\0_$Q(U
一、CSS 兼容若鄰博客_2L~l4pMK'q,~q
以下两种方法几乎能解决现今所有兼容.若鄰博客5@X9_HR,Sk0PG4?#`
a
[3K;qCH$`F#Z|k0
4o4D XM _j ~ a^01, !important (不是很推荐,用下面的一种感觉最安全)若鄰博客
L3p&]"nt_
随着IE7对!important的支持, !important 方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前.)若鄰博客9ywUEac0AS
CPd _ ]0代码:
kMf(DJ$B*_q0<style>
7] t3^|l#BL0#wrapper {
,|qK0\ leg"c0width: 100px!important; /* IE7+FF */若鄰博客T6USb)i3t:d?(H
width: 80px; /* IE6 */若鄰博客 Q"l&CN%^,N JsS
wAF
}若鄰博客m1QQ:[N-?'O7r"x+L,G
</style>
若鄰博客-nW$o7UH*SF0E[
2, IE6/IE77对FireFox <from 针对firefox ie6 ie7的css样式>若鄰博客Q/z ~;{/L
*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签.若鄰博客$Ip'HJ
T9aqk/{j
G
代码:若鄰博客iQcM(I^F{^
C
<style>
nA&~ G'c
[x,F0#wrapper { width: 120px; } /* FireFox */
/Um([&Ez]hA8P
V1_0*html #wrapper { width: 80px;} /* ie6 fixed */若鄰博客8K-K3?FUk
*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */
5sI#zk:aH?8jq0</style>若鄰博客/r0MK|G6P
!c'Fhz8iaZ0注意:
Z o9@*Cc'{J&k6J$f0*+html 对IE7的兼容必须保证HTML顶部有如下声明:
*g7Yi$jzz7],J'K3F0
mo`@8Q1?-s,o3O"F0代码:若鄰博客#{Eh$ty
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-n:J%Bn)y0二、万能 float 闭合(非常重要!) 可以用这个解决多个div对齐时的间距不对,
/Z}_?7R8[MXm0关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup]
v d7@"r)m0将以下代码加入Global CSS 中,给需要闭合的div加上 class=”clearfix” 即可,屡试不爽.
u
d/E$\l{0代码:
.klQk[U!H0<style>
y;BE-BBh0/* Clear Fix */
,d3n.bx(} L0.clearfix:after {
Xp
}5\`0xv:s0content:".";
@j5ZTvE%|R0display:block;若鄰博客 I*x,R
H l
height:0;若鄰博客
\ LmU8g&E3NC0W^)}
clear:both;若鄰博客Y#^Z"JT3Y"N v6ue
visibility:hidden;若鄰博客oJ-l!Ij!C
F_
}
*jnk;e6[/[Bt0.clearfix {
,~KT1hF*]/FB0display:inline-block;若鄰博客(d6fz%Up9q|
}若鄰博客}?PsV `kh
/* Hide from IE Mac \*/
!V4Fh#EG7c0.clearfix {display:block;}
;CO
Wq6c&RM0/* End hide from IE Mac */若鄰博客7k+T/OR8R
/* end of clearfix */若鄰博客/i#\z,j0H:cp7v
</style>若鄰博客 r$\|`5lF@ O
若鄰博客5A,~"IWv
三、其他兼容技巧(相当有用)
B'gh
j kAJ01, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决)
|x'{
k{q'[&};m|02, 居中问题.
3W6z+x6?5]"A.q;y01).垂直居中.将 line-height 设置为 当前 div 相同的高度, 再通过 vetical-align: middle.( 注意内容不要换行.)
}_#z;p(_6B,b:f02).水平居中. margin: 0 auto;(当然不是万能)若鄰博客&e5V;oB2\x
3, 若需给 a 标签内内容加上 样式, 需要设置 display: block;(常见于导航标签)若鄰博客'YR2^q/o#U;s6~
4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下 margin加倍等问题.
vAaz4aH0l9L05, ul 标签在 FF 下面默认有 list-style. 和 padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表)若鄰博客Z%GdW_lC
6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应.若鄰博客yyj"I:Eu
7, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.贴上代码:若鄰博客js#Z"zx&|Rr
a7}9dOJ)S`(A0若鄰博客J ?u,h.F2Ci&So_
兼容代码:兼容最推荐的模式。