一、火狐中给子容器设置的margin-top转移到父容器上了
css
当给box2设置margin-top时,在FF下仅做用于父容器。html
解决办法:ide
a.给父容器box加overflow:hidden;属性idea
b.父容器box加border除none之外的属性spa
c.用父容器box的padding-top代替margin-topfirefox
http://bbs.blueidea.com/thread-2926494-1-1.html
code
二、margin-top失效
由于父容器设置了float,而子容器没有,两种解决办法,一种清除浮动,一种父容器浮动,子容器也浮动
三、IE中li的高度比firefox高
htm
在样式表中给ul增长属性zoom:1;就ok了对象
更完美的解决方案blog
ul {
margin:0;
padding:10px;
list-style:none;
background-color:#006699;
zoom:1;/* ie */
}
ul:after {
content:".";
display:block;
clear:both;
height:0;
font-size:0;
line-height:0;
}
见zoom解决ul在ie下自适应li高度(兼容ie,firefox,ie8) http://123luoxiaoli.blog.163.com/blog/static/703343312013274376313/
四、ul中li之间有间距但容器右侧没有间距
遇到这种状况咱们不能用简单的margin-right来解决,父容器的宽度根本不够,要从根本上解决这个问题,你们能够研究下网易新浪的写法,网易有两种写法,一种是在最后一个li中加class="last",固然这种不是很完美,最好的效果是网易首页“图片暴龙”区域的写法,很是巧妙,有兴趣的童鞋能够研究下,其实有效的CSS也很精简,只有两三个属性
<div class="im02limg"> <ul class="clearfix"> <li><a href="#" target="_blank"> <img src="src" width="128" height="128"/> <p>名字</p> </a> </li> <li><a href="#" target="_blank"> <img src="src" width="128" height="128"/> <p>名字</p> </a> </li> <li><a href="#" target="_blank"> <img src="src" width="128" height="128"/> <p>名字</p> </a> </li> <li><a href="#" target="_blank"> <img src="src" width="128" height="128"/> <p>名字</p> </a> </li> <li><a href="#" target="_blank"> <img src="src" width="128" height="128"/> <p>名字</p> </a> </li> </ul> </div>
.clearfix:after{content:".";display:block;height:0;visibility:hidden;clear:both;} .clearfix{zoom:1;} .clearit{clear:both;font-size:0;line-height:0;height:0;} .clear {clear:both; height:1px; margin-top:-1px; overflow:hidden;} .im02limg{ width:672px; overflow:hidden; } .im02limg ul{ margin-left:-8px; } .im02limg ul li{ margin-left:8px; float:left; width:128px;_display:inline; overflow:hidden; } .im02limg ul li img{ width:128px; height:128px; } .im02limg ul li p{ widows:128px; height:40px; line-height:40px; text-align:center; }
要注意几点,父容器定宽而且超出隐藏必需要,UL的页面结构上要加上clearfix,不然都是没效果的,LI的_display:inline就解决了IE6不适应问题。
五、父容器的背景颜色延续不到子容器(或者说给父容器定的边框不会被子容器撑开)
<div class="wraper">
<div class="f_l"></div>
<div class="f_r"></div>
<div class="clear"></div> </div> 你们能够发现,给wraper设置了背景颜色,但实际上在浮动对象未添加clear以前这个颜色是不会延续到子容器的,解决办法就是上面那个了,只有加上clear后父容器才知道子容器高度,这也是我写CSS不须要定高的一个缘由,也是一个技巧。 [后记]在写样式中,很多人喜欢定高定宽浮动,我在写样式过程当中通常都会尽可能减小这些的写法,这些写法虽然兼容性很好,但有时候会或多或少带来不少麻烦。要作到减小这些高宽以及浮动,咱们必须累计不少技技巧才能保证兼容。