CSS浮动和清除浮动的办法

1. 什么是浮动

浮动就是使用 css当中的float 属性对一个元素进行设置,使其脱离文档流,移动到其父容器的左边或右边,可以达到图文环绕的效果。

  • 浮动只能向左或向右浮动,因为只有float: left、float: right 和float: none这三个属性,并没有float: top和float: buttom。
  • 浮动会尽量往左或右浮动,直到碰到了父容器的边缘。
属性 作用
float: left 使一个元素浮动在父元素内的左侧
float: right 使一个元素浮动在父元素内的右侧
float: none 元素不浮动

例子:
如果有三个固定大小的dvi,使其中的一个向右浮动。


例子1

2.清除浮动

看过上面的浮动介绍后,有人可能就会问了,已经设置好的浮动为什么要清除掉啊?请各位记住,浮动是有副作用的,而且这个清除浮动也并不是字面上的意思。

例子1:使一个元素向右浮动,此时浮动元素已经脱离文档流,所以他的父元素不能包含他。


浮动1

例子2:我们继续来看,如果父元素内的儿子元素都浮动呢?


浮动2

那么问题就来了,出现了父元素不能包裹子元素的现象。
为什么会这样呢?因为由于浮动元素脱离了文档流,所以不占用父元素文档流的位置,所以父元素无法包裹子元素,综上所述浮动是有副作用的,以上只是展示浮动简单的副作用,依据以上例子可以衍生出很多很多的副作用。会在以后遇到之后再更新此文。
  • 清除浮动的方法:
    1.在父容器的结尾加上一个空标签,标签是什么不重要,重要的是这个标签的默认类型必须是block ,并添加clear属性
    clear属性总共有三种
属性 作用
clear: left 在左侧不许浮动元素
clear: right 在右侧不许浮动元素
clear : both 在左右两侧不许浮动元素

这种方法可以理解为,比如空标签是一个人,这个人说:我的左边和右边都不许出现浮动元素(clear : both),然后这个人会用手托起自己上面的浮动元素,所有浮动元素都会压在他身上,父元素也就不会塌陷了。

2.使用伪类元素为父容器结尾添加一个空标签。

  content:"";
  clear:both;
  display: block;
}```
此方法和上面的原理是一样的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容