' H" l0 m. n1 U0 m7 t 11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 ul{margin:0;padding:0;} 就能解决大部分问题 2 H3 y7 {% t# E2 S & r& ]) b% m! y% i 注意事项:) O+ A9 M4 e6 k. z- f* o& P' N
: W0 f$ Q' V/ C, `" p
1、float的div一定要闭合。# |$ H9 e% F/ w9 M
$ c; g* N& W' w6 E; P" C
例如:(其中floatA、floatB的属性已经设置为float:left;) / i' ]. n4 V: o6 P9 g<#div id="floatA" ></#div>6 U3 d$ g% U0 \! W. _
<#div id="floatB" ></#div> % w! P* F7 a6 k4 h+ `+ Y+ j<#div id="NOTfloatC" ></#div>0 w6 Z9 P+ [' P& A( l, O2 ~
这里的NOTfloatC并不希望继续平移,而是希望往下排。' s2 k& }+ Q+ ]1 e/ J" a* Z# D
这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签闭合。! H3 d% o- \9 P# N" p9 a6 q
在 <#div class="floatB"></#div> + |0 g1 P( p8 i7 r<#div class="NOTfloatC"></#div>+ R! I6 ]$ M- {# Z5 V0 v
之间加上 <#div class="clear"></#div> 4 r" d5 K8 S; _- D: t- b4 c, Z- u$ { | 这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。8 h2 V& _, g: u5 p Q- j6 r
并且将clear这种样式定义为为如下即可: .clear{ + w" ?+ `7 p2 g; s# c. Qclear:both;} ) Y9 G1 W6 B7 s; G 此外,为了让高度能自动适应,要在wrapper里面加上overflow:hidden;& n4 i8 f4 C% E+ W3 i
当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就达到了兼容。 ! `3 v/ W, k {3 f- l, } 例如某一个wrapper如下定义: .colwrapper{4 M' g8 P# w$ g$ m, Z% Y# |
overflow:hidden; + r. f9 d6 \1 r8 Q# D( c6 G" Ezoom:1; 1 W( A( s s6 k* {margin:5px auto;}4 ^; p' U c1 c `
+ x$ G' h& a7 I% n 2、margin加倍的问题。- b% V% @( {7 g* c
: v% q) A2 l7 H" O9 B3 j$ P" a: t+ Y3 C 设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。 ; n0 B$ z9 @- a1 k! Y5 z 解决方案是在这个div里面加上display:inline;3 E' f6 g" Y+ {' f$ V9 P
例如: 5 J, M; g3 q. `<#div id="imfloat"></#div> 6 i3 Q, {, [. t. `! ~ F0 A' ]7 M9 [* h, `8 Q. f0 ~
( d2 H7 f" j% f: ^$ Y7 ? 相应的css为 ; W; k% I$ F/ A6 F2 {$ P2 c#IamFloat{) U0 F' j3 q- E b+ E
float:left; . W: b$ Y) b7 kmargin:5px;/*IE下理解为10px*/2 Z x% }8 c, O! k# V3 R, m! G
display:inline;/*IE下再理解为5px*/}7 D9 d( e$ Z* I! {3 S
* x z z+ Q6 t. c1 c 3、关于容器的包涵关系 % i3 H! c3 n5 M9 b. m$ t1 F1 y ) q Y9 P/ y7 v% u* d$ U 很多时候,尤其是容器内有平行布局,例如两、三个float的div时,宽度很容易出现问题。在IE中,外层的宽度会被内层更宽的div挤破。一定要用Photoshop或者Firework量取像素级的精度。- g& n. h5 F. G
& I) y; L, h$ B8 T 4、关于高度的问题/ a! {$ I& \5 m: p' G, B6 v/ n
' B2 \6 F9 ^8 P2 m 如果是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。(似乎有时候不会自动往下撑开,不知道具体怎么回事): r2 w; S7 }) v4 X
# J- [- c6 M. v2 N! t& W. ^0 S
5、最狠的手段 - !important; 0 E) [- q) X) ?+ U, `/ `' ~ ; g: e7 Y, M3 z1 j4 p) m5 N4 Y 如果实在没有办法解决一些细节问题,可以用这个方法.FF对于"!important"会自动优先解析,然而IE则会忽略.如下 .tabd1{ ! y2 g" I% M) `9 i0 i: u, q* v0 ebackground:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/ " M d; D9 [8 vbackground:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */}1 x' ^$ u) H3 y$ L
值得注意的是,一定要将xxxx !important 这句放置在另一句之上,上面已经提过