css开发页面布局重要基础!浮动布局全面了解

浮动(Float)在前端开发中是一个常用的布局技术,它可以让元素脱离文档流并且实现文字环绕、块级元素同行显示以及行内元素设置宽高等效果。同时,浮动元素也会带来一些问题,如外边距重叠和父元素高度塌陷等,因此清除浮动和创建块级格式化上下文(BFC)也是我们需要了解和掌握的知识点。

浮动

  • 脱离文档流 :浮动可以让元素脱离文档流,使得其他元素可以围绕它排列,从而实现文字环绕的效果。
    float:left

使用前:

使用后:

  • 文字环绕:通过浮动,可以让文本围绕在图片或其他浮动元素的周围,实现页面布局的美化和增加交互性。
  • 可以让块级元素同行显示:通过浮动,可以让多个块级元素在同一行上显示,而不是默认的堆叠排列。(如下是使用无序排列对每个排列设置的样式,使用浮动前后的样子)


  • 让行内元素可以设置宽高: 浮动元素可以改变行内元素的默认行为,使其具有设置宽高的能力,从而更好地适应页面布局的需求。

  • 浮动元素可以使用margin(但是不能使用margin:0 auto):浮动元素可以使用margin属性来设置外边距,但是不能使用margin: 0 auto;来实现居中对齐,因为浮动会使元素脱离正常的文档流,无法通过margin: 0 auto;来实现水平居中。

清除浮动

  • 直接给父容器设置高度:通过给包含浮动元素的父容器设置一个固定的高度,可以清除子容器浮动造成的高度塌陷问题(子容器没有高度)。但是这种方法需要提前知道父容器的高度,不够灵活。
  • 增加子容器,在子容器身上清除浮动:在包含浮动元素的父容器内部增加一个额外的子容器,并在子容器上应用清除浮动的样式,例如使用clear: both;这样可以清除掉浮动元素对父容器造成的影响。
  • 借助伪元素after :使用伪元素after在父容器的末尾插入一个空的块级元素,并设置clear: both;可以清除浮动。
  • BFC(Block Formatting Context):BFC是一种块级格式化上下文,可以通过触发BFC来清除浮动。创建BFC的方式包括浮动、定位、行内块、表格单元、overflow属性和弹性盒子等。触发BFC后,浮动元素会被包含在BFC容器内部,从而实现清除浮动的效果。

BFC --Block Formatting Context

  • bfc容器的特征

    1. 块级格式化上下文
    2. 内部盒子会在垂直方向上一一排列,按照文档流的顺序排列。
    3. BFC容器在计算高度时,会将内部浮动的子元素的高度也计算在内,避免高度塌陷问题。
    4. 解决外边距重叠的问题,相邻的两个块级元素的外边距会发生重叠,但是处于不同的BFC容器中的元素的外边距不会重叠。
    5. bfc的效果是让处于bfc内部的元素与外部的元素相互隔离,使内外元素的定位不会互相影响
  • 如何创建bfc

    • 浮动:float:left || right
    • 定位:position:absolute | fixed
    • 行内块:display:inline-block
    • 表格单元:display:table-cell | table-xxx
    • overflow:auto(自适应) | hidden(超出隐藏) | scroll(超出显示滚动条)
    • 弹性盒子:display:flex | inline-flex

以上是关于浮动及清除浮动的一些介绍和方法。如果有具体的示例或更深入的问题,欢迎私信讨论。

相关推荐
CappuccinoRose6 小时前
CSS 语法学习文档(十七)
前端·css·学习·布局·houdini·瀑布流布局·csspaintingapi
keyborad pianist6 小时前
Web开发 Day1
开发语言·前端·css·vue.js·前端框架
Never_Satisfied6 小时前
在HTML & CSS中,可能导致父元素无法根据子元素的尺寸自动调整大小的情况
前端·css·html
Never_Satisfied7 小时前
在HTML & CSS中,img标签固定宽度时,img和图片保持比例缩放
前端·css·html
凯里欧文4278 小时前
CSS Grid 案例
前端·css
狂龙骄子8 小时前
RuoYi-Vue字典标签CSS样式自定义指南
css·前端框架·ruoyi·数据字典·若依·字典标签·样式属性
Lee川8 小时前
CSS 伪元素选择器:为元素披上魔法的斗篷
css
光影少年17 小时前
浏览器渲染原理?
前端·javascript·前端框架
寻星探路21 小时前
【前端基础】HTML + CSS + JavaScript 快速入门(三):JS 与 jQuery 实战
java·前端·javascript·css·c++·ai·html
小唛的前端宝库1 天前
【SSR】SSR 到底做了什么(用最简单的方式)
前端框架