关于浮动与清除浮动

  • time: 2016-02-23 21:00
  • tags: css

在css布局中常用的一个属性就是float,它可以让div块脱离原本的文档流向左或向右浮动,但是...这个浮动有时候很烦,需要清除浮动,下面详细整理一下关于浮动,为什么要清除浮动和怎样清除浮动。

一. float

float浮动样式没有靠中(浮动居中)的样式,在css布局中如果需要让标签对象居中需要margin等其它方法(先偷懒下次整理(●°u°●)​ ),这里记住浮动靠右使用float:right,浮动靠左使用float:left样式即可。例子到下面一起举。

二.为什么要清除浮动?

div嵌套式子元素浮动而父元素未浮动

后果:因为float会脱离文档流,这样就导致了父元素的height为0.

float1.png

此时父元素div的height变为0,只显示了3px的边框:

float2.png

三.如何清除浮动?

(第一类):在元素末尾添加一个内容带有clear:both属性的空元素

1.方法一:使用带clear属性的空元素

float3.png

在在浮动元素的下面加了一个clear:both;的属性,然后浮动被清除,父元素的高度被自动填充了:

float4.png

2.方法二:使用CSS的:after伪元素

float5.png

给浮动元素的容器添加一个clearfix的class,然后给这个class添加一个:after伪元素实现元素末尾添加一个看不见的块元素(Block element)清理浮动。需要注意的是为了IE6和IE7浏览器,要添加一条zoom:1;触发haslayout。

float6.png

(第二类):触发浮动元素父元素的 BFC (Block Formatting Contexts, 块级格式化上下文),使到该父元素可以包含浮动元素

3.方法三:使用CSS的overflow属性

float7.png

给浮动元素的容器添加overflow:hidden;或overflow:auto;可以清除浮动,另外在 IE6 中还需要触发 hasLayout ,例如为父元素设置容器宽高或设置 zoom:1。

float4.png

4.方法四:给浮动的元素的容器添加浮动(但是这样会使其整体浮动,影响布局,不推荐使用. )

float8.png

显示结果与方法三相同就不再列出。

四.后记

网上推荐说在网页主要布局时使用:after伪元素方法并作为主要清理浮动方式;在小模块如ul里使用overflow:hidden;如果本身就是浮动元素则可自动清除内部浮动,无需格外处理;正文中使用邻接元素清理之前的浮动。回顾一下洗洗睡觉(●°u°●)​ 」

转载于:https://www.cnblogs.com/evaxtt/p/9522156.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值