clear方法和margin/padding在IE6的兼容性问题

来源:互联网 发布:unity3d movietexture 编辑:程序博客网 时间:2024/06/01 19:56

对clear属性的使用:

在进行DIV布局时常要用到float方法和层与层之间的嵌套,但很多时候会发现布局完全不能随心所欲。例如:

1.前两个DIV进行左右浮动,而后面的DIV不想进行浮动操作,这时的DIV还是会继承浮动特性,或者排版混乱。

2.在层与层的嵌套中,当外层设置了边框显示,且高度设为100%。过后有可能会出现内层跑到外层的外面这种情况。也就是说外层的边框会提早收缩。甚至有可能出现外层的边框只有0px,直接被定义为不可见。

一出现这种情况,我一般采取clear:both;这个方法整理布局

当出现第一种情况时,只要在后面的DIV之前写上这个方法,布局就会恢复正常;出现第二种情况时,不管内层在多少个,只要在外层结束时的上一条语句写上这个方法,一切OK。

以我的经验,我会在CSS这样定义:.clear{clear:both;}
然后在页面中写上:<div class="clear"></div>

不过在IE6里面,这个方法有时候会出现致命的布局错误。只要你在内层里面使用这个方法,布局很有可能乱成一团,现在想到的解决方法就是少使用,或在正确的位置上使用,这要靠经验才能把握得住这个度。

 

 

margin和padding的兼容性

这两种方法只有在IE6才会出现小小的不同。定义这两者后,IE6总是会默认把数值变得很大,例如:

margin-left:20px;在其他浏览器的外边距就是20px,但在IE6里可能会变为40px。

解决方法是另外再写上:  _margin-left:8px;   这样就完美解决IE6的像素兼容性问题

原创粉丝点击