Float布局:盒子排序

上篇已介绍了float布局及清除浮动的方法

1. 已知:

        给盒子设置float后,盒子会变成行内块元素进行行排,如果一行放不下会掉到第二行

2. 问题:

        1. 既有左浮动盒子也有右浮动盒子时的排列情况

        2. 浮动盒子的高度不同时导致的错位情况

3. 示例:

  • 子元素均左浮动
    • 现象:4、5落在第二行,并非紧挨着1、2
    • 解释:3号右侧放不下4、5考虑落到第二行,第二行的高度起点从第一行的最大高度处开始
    • 方法:可以通过给1、2、3设置一个父元素div,并清除浮动,可看到第一行高度是被3撑开。

 图1
  •  3右浮动,其他子元素左浮动
    • 现象:4、5落到第二行紧贴着1、2
    • 解释:左浮动的序列为:1、2、4、5,当3右浮动后,第一行剩余的空间放不下4、5,落到第二行。可以看出左序列和右序列互不干涉,但是在空间占用处在同一层面
    • 一般代码中既有左浮动又有右浮动时,选择先写右浮动,可以对齐,否则当一行内空间放不下右浮动元素时,导致盒子不对齐(如图3)。

 图2
 图3
  •     子元素都左浮动,3加高加宽
    • 现象:第一行放不下3、4、5,掉到第二行,4右侧放不下5,5跟着4在3的右侧,
    • 问题:5应该掉到第三行紧贴3的左下角,但没有这样显示
    • 解释:float布局中当子元素盒子高度不一致时会导致“卡住”,4的右侧放不下5,5要掉的时候会先检查此行有没有高度能把他拦在这一层。

 图4
  •     此例能更加形象解释float盒子的排列
    • 示例:都左浮动,2增加高度
    • 现象及解释:
      • 4:第一行3右侧放不下4,4应该掉到第二行,但前面2的高度拦住了4,4被卡在了第一行
      • 5:第一行放不下5,也没有能拦住它的元素,它的起始高度位置从第一行的最高处开始计算,即被拦住的4的底部。

4. 总结 

float布局:设置了float的元素会变成行内块元素,进行行排列,左右浮动是不同的序列,但是占用空间是同一层面,即不涉及空间放不下时,只在同一个序列中考虑元素位置问题。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值