闭合浮动和清除浮动

一:什么是浮动

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

二:闭合浮动

正式因为这种浮动的这种特性,所以本该属于普通流中的元素浮动之后,,包含框的高度就可能会发生变化(包含框内部由于不存在其他普通流元素了,表现出的高度就为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”>

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:"."生成内容作为最后一个元素

你可能感兴趣的:(闭合浮动和清除浮动)