css清除浮动

****导致父容器高度塌陷的主要原因就是子容器使用float会使元素脱离文档流****
例如:下图中的三个div本来是在红色边框中,但是因为这三个div使用了float:left;导致了红色边框的父容器高度塌陷,也就没有了高度,从而显示成了一条红线。

Paste_Image.png

****解决方法一****
为父元素添加overflow:hidden;

Paste_Image.png
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .box{border: 1px red solid;overflow: hidden;}
        .one{height: 30px;width: 100px;background-color: #666;float: left;}
        .two{height: 30px;width: 100px;background-color: #999000;float: left;}
        </style>
</head>
<body>
<div class="box">
<div class="one">First</div>
<div class="two">Second</div>
    </div>
</body>
</html>

****解决方法二****
在父元素</div>前添加一个<div class="clear"></div>并且为这个div添加属性clear:both;

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .box{border: 1px red solid;}
        .one{height: 30px;width: 100px;background-color: #666;float: left;}
        .two{height: 30px;width: 100px;background-color: #999000;float: left;}
        .clear{clear: both;}
        </style>
</head>
<body>
<div class="box">
<div class="one">First</div>
<div class="two">Second</div>
    <div class="clear"></div>
    </div>
</body>
</html>

****解决方法三****
因为导致父元素高度塌陷的原因就是子元素脱离文档流,这样我们就给父元素添加一个高度属性就可以了,前提这个方法需要知道子元素的高度才能适当的给父元素添加所需要的高度

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .box{border: 1px red solid;height: 30px;}
        .one{height: 30px;width: 100px;background-color: #666;float: left;}
        .two{height: 30px;width: 100px;background-color: #999000;float: left;}
        </style>
</head>
<body>
<div class="box">
<div class="one">First</div>
<div class="two">Second</div>
    </div>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,841评论 1 92
  • 在CSS布局中float属性经常会被用到,但使用float属性后会使其在普通流中脱离父容器,让人很苦恼。 浮动带来...
    wmsj100阅读 878评论 0 1
  • 清除浮动一般有两种思路:一、利用clear属性,清除浮动二、使父容器形成BFC 一、利用clear属性,清除浮动c...
    饥人谷_紫尘阅读 4,776评论 2 11
  • 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素的特征: 不占据普通文档流的空...
    南山码农阅读 276评论 0 1
  • 什么是CSS清除浮动? 在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动(flo...
    秦至阅读 436评论 1 8