css3 清除浮动

eg:三个div,父级div下面有两个div分别float:left和float:right

 1 <style>
 2     .container{width:400px;border:3px soild red;}
 3     .fl{float:left;}
 4     .fr{float:right;}
 5 </style>
 6 <body>
 7     <div class="container">
 8         <div class="fl">向左浮动</div>
 9         <div class="fr">向右浮动</div>
10     </div>
11 </body>

副作用:

1、背景不能显示 由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能显示。

2、边框不能撑开 如上图中,如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开,导致边框不能随内容而被撑开。

3、margin padding设置值不能正确显示 由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。

解决方法:

  一、子div末尾加上<div style="clear:both"></div>;

  二、父div加上overflow:hidden属性。(由于overflow:hidden属性相当于是让父级紧贴内容,这样即可紧贴其对象内内容(包括使用float的div盒子),从而实现了清除浮动。推荐使用

原文地址:https://www.cnblogs.com/lewis-g/p/4460354.html