文档流、浮动流及消除浮动

本文深入解析CSS中的浮动流概念,包括浮动元素的行为特征、常见问题如脱标、字围及收缩现象,以及五种清除浮动的方法,如clear属性、overflow属性、外墙法、内墙法和before伪类。同时,文章探讨了浮动对布局的影响及如何避免布局混乱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、文档流(普通流/标准流)

  *浏览器默认的标准就是文档流

  *在CSS中分为块元素(垂直排版)、行内块元素(水平排版)、行内元素()。不同的元素有自己的排布规则

二、浮动流

1、

原文规范:In the float model, a box is first laid out according to the normal flow, then
taken out of the flow and shifted to the left or right as far as possible.

意思是:1)元素浮动后的位置由其浮动前在文档流中的位置决定(在文档流中是第几行,浮动后就在第几行)

    2)浮动后会尽量向最左侧/最后侧放置,直到遇到元素边框或者其他浮动元素

  *浮动元素字围现象:因为浮动是一种半脱离文档流的形式,元素会脱离文档流DOM,其他元素会占用它的位置。但是文字会依然为其留下位置

    常应用在图文排版中

  *只有水平排版(后浮动的元素在先浮动元素的后面,直到放置不开换行,所以浮动流中没有块元素与行内元素之分,都类似与行内块元素)

2、清除浮动方法

浮动影响:

  脱标(脱离标准流,造成布局混乱,高度塌陷);字围(文字围绕浮动元素);收缩(不区分行内元素与块元素);贴边(向左或者向右)

清除浮动方法:

   1)*clear:left/right/both 实际上both就是消除对它影响最大的一侧   不推荐使用,因为clear本质就是闭合盒子不让内部的子元素出来

   2)父元素设置over-flow:hidden.auto。不推荐使用,无法显示溢出的元素

   3)使用外墙法(在浮动子元素的父元素后面添加一个空白的div,对其设置clear:both)

      缺点:margin失效;父元素高度依然丧失

      

 

 

   4)内墙法:box1可以使用margin,并且会有高度。缺点:都需要添加无用的结构,还需要设置clear,不推荐使用

    

 

   5)*通过before伪类消除,推荐使用

    

 注意:

  *display:inline-block/table/table-cell/table-captions

  *float:left/right

  以上方式会开启BFC,但是依旧会造成布局混乱,不能用于清除浮动

转载于:https://www.cnblogs.com/qqinhappyhappy/p/11546034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值