清除浮动

1、为什么使用浮动

为了解决几个块级元素并排显示问题,虽然可以使用定义块级元素的display为inline-block(这种方式也不会出现父级元素坍塌问题)但是这种方式不能控制元素的位置而是默认从左到右,所以要实现元素是居左还是居右使用浮动更方便。

2、为什么清除浮动

解决父级高度塌陷问题

3、如何清除浮动

1)父元素添加overflow:hidden

缺点:超出边框的内容会被隐藏。
问题:当组先级元素相对定位,父元素overflow:hidden;时,子元素超出部分不隐藏,如下图:child元素超出部分没有被隐藏

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
        .grandfather {
            position: relative;
            width: 400px;
            height: 400px;
            background-color: pink;
        }
        .dad{
            width:300px;
            height:300px;
            background-color: blue;
            overflow: hidden;
        }
        .child{
            position:absolute;
            width: 600px;
            height: 600px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="grandfather">
        <div class="dad">
            <div class="child"></div>
        </div>
    </div>
</boy>
</html>

2)父元素添加clear:both;

缺点:margin失效。不推荐

3)父元素添加伪元素::after,设置clear:both,比较推荐

.clearfix::after{
  content:’’;
  clear:both;
  display:block; /*转为块级元素*/
}

优点:父元素被子元素内容撑开(父元素有高度),比较方便也符合语义化

缺点:IE6/IE7不识别:after伪元素,存在兼容性问题

4)在两个父盒子之间“隔墙”(加一个冗余元素div)

上下两个父盒子的margin失效,需要将该"墙"设置高度当缝隙


浮动.jpg

缺点:必要在页面添加很多没有意义的冗余元素,过于麻烦,而且不符合语义化

5)给父级元素单独定义高度

优点:简单、代码少、容易掌握。
缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题。对于响应式布局会有很大影响。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 清除浮动的几种方式:块级化上下文 、clear:both 一、块级化上下文: 原理:1.BFC 全称是块级排版上...
    飞飞廉阅读 224评论 0 0
  • 一直没有深入去了解过浮动造成的影响,只是知道会高度塌陷,至于为什么就不知道了。梳理css中的基础知识带给我类似读源...
    小鳄鱼的大哥哦阅读 962评论 0 1
  • 本文概述 本文的框架图如下: 一、浮动到底是什么? W3school中给出的浮动定义为 浮动的框可以向左或向右移动...
    浪里行舟阅读 661评论 4 13
  • 本文概述 本文的框架图如下: 一、浮动到底是什么? W3school中给出的浮动定义为浮动的框可以向左或向右移动,...
    前端三少爷阅读 564评论 0 0
  • 一、浮动的本质 浮动的核心只有一句话:浮动元素会脱离标准文档流向左/向右浮动,直到碰到父元素或者另一个浮动元素。 ...
    lifeline张阅读 374评论 0 0

友情链接更多精彩内容