css【详解】—— BFC 和 IFC

简介: css【详解】—— BFC 和 IFC

FC(Formatting Context)格式化上下文—— 一个渲染区域,拥有一套渲染规则,它决定了其子元素如何定位,以及与其他元素之间的关系和相互作用。

IFC布局——行内格式化上下文

inline formatting context

触发IFC的方法

块容器盒内不包括任何块级盒,即块容器盒(html行内块级标签或块级标签)内全是行内盒(html内联标签)

IFC布局的特点

  • 行内盒水平排列为一行,当容器宽度不够时就会换行
  • 每一行都会生成一个行盒(见触发IFC的方法中的配图),内部包括该行所有的盒子
  • 行盒的宽度由包含块和存在的浮动来决定
  • 行盒的高度由内部元素中实际高度最高的元素计算出来
  • 水平方向上行内盒的外边距、边框、内边距所占用的空间都会被计算,但垂直的border,padding 与 margin 都不会撑开行盒的高度
  • 水平方向的对齐通过 text-align 来设置,默认对齐为left 左对齐(当所有盒的总宽度小于行盒的宽度时)
  • 垂直方向的对齐通过 vertical-align 来设置,默认对齐为 baseline 基线对齐(当最高的行内盒的高度小于行盒的高度时)
  • 当所有盒的总宽度超过一个行盒时,就会形成多个行盒,多个行盒相互之间垂直方向不能分离,不能重叠
  • 行盒一般左右边都贴紧其包含块,但是会因为浮动盒(float 元素)的存在而发生变化。浮动盒会位于包含块边缘与行盒边缘之间,这样行盒的可用宽度就小于包含块的宽度
  • 当一个行内盒超过行盒的宽度时,它会被分割成多个盒,这些盒被分布在多个行盒里。如果一个行内盒不能被分割(比如只包含单个字符,或word-breaking机制被禁用,或该行内框受white-space属性值为nowrap或pre的影响),那么这个行内盒将溢出这个行盒

BFC布局——块级格式化上下文

block formatting context

形成一块独立的渲染区域,内部元素的渲染不会影响外部元素,也不会被外部元素影响

触发BFC的方法

满足以下任意一个条件即可

  • html根元素;
  • float的值不为 none;
  • overflow的值不为 visible (即值为auto / scroll / hidden【推荐】)
  • display的值为 flex / inline-block / table-cell / table-caption
  • position的值为 absolute / fixed

BFC布局的特点

  • 不会发生margin重叠
  • 可以清除浮动
  • 实现更健壮、更智能的自适应布局

应用范例

清除浮动

    <div class="container bfc">
        <img src="https://t7.baidu.com/it/u=1595072465,3644073269&fm=193&f=GIF" class="left" style="magin-right: 10px;"/>
        <p class="bfc">某一段文字……</p>
    </div>
        .container {
            background-color: #f1f1f1;
        }
        .left {
            float: left;
        }
        .bfc {
            overflow: hidden; /* 触发元素 BFC */
        }

目录
相关文章
|
前端开发 容器
CSS 中BFC是什么?
CSS 中BFC是什么?
300 1
|
前端开发 容器
CSS:BFC(Block Formatting Context 块级格式化上下文)
CSS:BFC(Block Formatting Context 块级格式化上下文)
237 0
|
前端开发 容器
CSS面试考点:隐藏元素、BFC、垂直居中、CSS3新特性
【4月更文挑战第2天】 CSS面试考点:隐藏元素、BFC、垂直居中、CSS3新特性
207 10
|
前端开发 容器
CSS BFC是什么,应用实例
CSS BFC是什么,应用实例
149 0
|
前端开发 容器
前端CSS理解 —— BFC(块级格式化上下文)
前端CSS理解 —— BFC(块级格式化上下文)
219 0
|
前端开发 容器
CSS实战笔记(九) BFC
CSS实战笔记(九) BFC
182 0
CSS实战笔记(九) BFC
|
前端开发 容器
CSS中的BFC是什么?
CSS中的BFC是什么?
278 0
|
前端开发
【CSS】有意思的BFC:Block Formatting Context(块格式化上下文)!🤡
前言 大家好,我是HoMeTown,今天想聊一聊CSS中的BFC,很多朋友应该都听过这个名词,搞懂BFC可以让我们理解CSS中一些很诡异的地方,话不多说,直奔主题!
171 0
|
8月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    356
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    277
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    245
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    169
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    366
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    506
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    332
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    168
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    331
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    317