关于CSS 浮动float, clear的使用

前几天在写网页时,写的乱七八糟,关于CSS浮动这方面了解不足,于是查了下资料,总结了一下。

废话少说,我们直接列出几个块出来。

float

列出来效果是这样的。那4个块为什么是自上而下排列的呢,而不是排成一行的。这是因为div属于块级元素,

在页中独占一行,自上而下排列,这就是所谓的流。所以4个div块就有4行了。

 

要使他们不是自上而下排列有个方法,那就是使用浮动啦。

float:left;

float:right;

顾名思义,就是左右浮动。(向左浮动或向右浮动)

 

那么先让div2向右浮动试试看。

果然不出所料,div2向右浮动了,但是我们会发现一个问题。div3为什么向上移动了,并且占据了div2原本的位置。

这是因为,div2浮动了,它就脱离了标准流,在标准流上浮动,与标准流不是同个层次。

这样一来, div2就没有了之前的独占一行。它不是标准流,而其他三个块还是标准流,所以它们还是自上而下排列,

各自独占一行。

(div3向上移动是因为div2不再独占一行,div3就向上移动。div2与div3同一行是因为div2浮动可以在标准流上浮动。)

 

同理,div3也向右浮动。

div4向右浮动。

若A浮动。

于是我们可以得出一个结论:

如果某一元素B浮动,若它前面的元素A也浮动,那元素B就会在元素A后面。若元素A不浮动,那元素B就在元素A的下一行。

 

clear

clear是清除浮动的意思。

clear:

none ->  默认值,允许有浮动对象;

left    ->  清除左边的浮动;

right  ->  清除右边的浮动;

botn  ->  清除左右浮动,不允许有浮动对象。

 

演示一下,让div1, div2都是左浮动,让它们排成一行。

那现在要让div2排在div1下面怎么实现。你有可能会说,可以取消div1的浮动啊,这样div2就会排在div1下面了。

不不不,我要利用clear清除浮动。你或许会说,在div1里添加clear:right来清除他右边的浮动。

也不是!

clear只能影响使用清除的本身,不能影响其他因素。

所以我们在div2中加入clear:left清除它左边的浮动对象,这样它就会排在div1下面了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值