美文网首页
闭合浮动和清除浮动

闭合浮动和清除浮动

作者: stars甜 | 来源:发表于2017-07-05 00:18 被阅读0次

    一:什么是浮动

    浮动是脱离文档的普通流存在的(可以看作是漂浮在普通流上),它可以左右浮动,直到它的外边缘遇到包含框或者另一个浮动框为止(即浮动框不在文档普通流中,所以在布局的时候文档中的普通流就会表现得和浮动框不存在一样,当浮动框高度超出包含框的时候,也就会出现包含框不会自动伸高来闭合浮动元素)。

    二:闭合浮动

    正式因为这种浮动的这种特性,所以本该属于普通流中的元素浮动之后,,包含框的高度就可能会发生变化(包含框内部由于不存在其他普通流元素了,表现出的高度就为0),在实际应用中,这会严重影响到我们布局,所以我们需要闭合浮动,使其包含框表现出正常的高度。

    三:清除浮动 还是 闭合浮动 (Enclosing float or Clearing float)?

    很多人都已经习惯称之为清除浮动,但是确切地来说是不准确的。我们应该用严谨的态度来对待代码,也能更好地帮助我们理解开头的三个问题。

    1)清除浮动:清除对应的单词是 clear,对应CSS中的属性是 clear:left | right | both | none;

    2)闭合浮动:更确切的含义是使浮动元素闭合,从而减少浮动带来的影响。

    其实我们想要达到的效果更确切地说是闭合浮动,而不是单纯的清除浮动,在footer上设置clear:both清除浮动并不能解决wrap高度塌陷的问题。

    用闭合浮动比清除浮动更加严谨

    四:清除浮动方法

    1、在浮动元素末尾添加一个空div,例如< div style=”clear:both”></div>

    2、父级div定义 overflow: hidden;


    3、对父级元素设置合适的高度;

         能够详细计算出实际高度,否则容易布局混乱

    4、对父级元素设置浮动

    5、对父级元素设置伪元素,即:after;

    .aa:after {content:".";display:block;height:0;clear:both;visibility:hidden;  }

        1) display:block 使生成的元素以块级元素显示,占满剩余空间;

       2) height:0 避免生成内容破坏原有布局的高度。

       3) visibility:hidden 使生成的内容不可见,并允许可能被生成内容盖住的内容可以进行点击和交互;

     4)通过 content:"."生成内容作为最后一个元素

    相关文章

      网友评论

          本文标题:闭合浮动和清除浮动

          本文链接:https://www.haomeiwen.com/subject/yrxfhxtx.html