html排版原理-float

当只有float:left的时候

以前我经常认为设置了float属性的块节点将会成为内联节点,其实实际上不是这样,设置了float属性的节点就是会变得“透明”,比如块A、B、C,D;A是float:left,B是float:left,C没有设置float属性,D也没有设置float属性,那么排版出来的效果是

ABC

D

C并不会在独立的一行出现,但是依然要求后续节点D在所在行的下一行,这说明C忽视了AB的存在并认为第一行是空的。

再比如A、B、C、D、E;A是float:left,B是float:left,C是内联元素且没有设置float属性,D是float:left,E和C一样,排版效果是:

ABCE

D

C认为AB是透明的,第一行为空,所以在AB后面跟随,E认为AB和E是透明的,第一第二行为空,则在第一行C的后面跟随。

而带有float:left的元素总是尝试在跟随在float:left属性的节点后面,或者在新的一行首部。

 

当float:right和float:left结合的时候

即使有float:right的存在,float:left属性的节点的排版原则并不会改变;

内联节点依然会认为float:right也是透明的,比如A、B、C、D;A是float:left、B是float:right、C无float属性且内联、D是float:right,排版结果为:

AC                  B

                      D

C会认为AB所在行还是空行,所以在会在A和B之间,D只在行末或者在float:right属性节点的左边,因为不能在C的左边,只能选择新行的行末。我们可以这样理解某个float:right元素的排版原则:放在仅有float属性节点的一行或者空行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值