前端面试css系列——bfc

mmcai      2022-02-11     378

关键词:

介绍下BFC及其应用

定义

BFC(Block Formatting Context)翻译为『块级格式化上下文』。是一个独立的渲染区域,只有(Block-level box)块级盒子参与,BFC规定了内部盒子如何布局,以及盒子之间的关系和作用。

解释说明

Box(盒子)

Box盒子是CSS 布局的基本单位,在CSS中我们广泛的使用两种『盒子』——块级盒子和内联盒子。HTML元素的类型和display属性,决定了一个Box(盒子)的类型。不同类型的Box(盒子),会参与不同的Formatting Context(格式化上下文)。

Formatting Context(格式化上下文)

Formatting Context(格式化上下文) 是页面中的一块渲染区域,它决定了子元素将如何布局,以及子元素之间的关系和作用。

Block Formatting Context,块级格式化上下文,是Formatting Context(格式化上下文)的一种类型,只有(Block-level-box)块级盒子参与;相对应有Inline Formatting Context (IFC内联格式化上下文)。CSS3之后,还有GFC(Grid)和FFC(Flex)。

规则

  1. 内部的box会按照垂直方向叠放
  2. BFC是页面上一个被隔离的容器,BFC内部的子元素布局不会影响到外面的元素布局。
  3. 内部的box,垂直方向的距离由margin来控制。
  4. 内部相邻Box的margin会发生重叠。
  5. BFC的区域不会与float box重叠
  6. 计算BFC的高度时,浮动元素也参与计算

应用

  1. 清除浮动(让浮动元素的父级触发BFC)
  2. 阻止同一个BFC内box外边距合并
  3. 自适应两栏布局
  4. 阻止元素被(float)浮动元素覆盖

如何创建(触发)BFC

  • 根元素
  • 浮动元素
  • 定位元素
  • 行内块元素
  • 表格单元格
  • 表格标题
  • overflow不为visible的块元素
  • display值为flow-root的元素
  • contain值为layout、content或paint元素
  • 弹性元素flex布局元素的直接子元素
  • 多列容器grid布局元素的直接子元素
  • ...

总结

BFC块级格式化上下文,简单来说是一个封闭的区域,这区域里面的盒子不会影响区域外面的布局。BFC区域内的盒子需要遵守一些布局规则,比如:盒子会按照垂直方向排,盒子垂直方向的距离由margin控制,BFC 区域不与浮动框重叠,计算BFC的高度时,浮动元素也参与计算等。根据BFC的布局规则,BFC可以解决清除浮动,外边距合并等异常布局,也可以实现自适应两栏布局,阻止元素被浮动元素覆盖。创建(触发)BFC的条件有给元素添加overflow属性且值不为visible,float属性且值不为none,display属性值为:flow-root,inline-block,table-cell,table,table-row,flex,grid等。

参考链接

CSS of BFC

it邦——BFC

BFC in Css

https://www.programmersought.com/

前端面试css—bfc的渲染规则有哪些?有哪些应用场景?(代码片段)

1.BFC渲染规则1. BFC垂直方向边距重叠;2. BFC的区域不会与浮动元素的box重叠;3.BFC是一个独立的容器,外面的元素不会影响里面的元素;4. 计算BFC高度的时候浮动元素也会参与计算。2.BFC的应用场景1. 防止浮动导... 查看详情

前端面试题6道开胃菜css+js+vue(代码片段)

css区 一:BFC的相关:BFC的概念?了解:CSS2.1中只有 BFC 和 IFC,  css3中还增加了 GFC 和 FFC。BFC定义:BFC(Blockformattingcontext)直译为“块级格式上下文”,它是一个独立渲染区域,只有BLOCK-LEV... 查看详情

前端面试css—什么是bfc?它的触发条件有哪些?

1.什么是BFC?BlockFromattingContext,即块级格式上下文。W3C对BFC的定义如下:浮动元素和绝对定位元素,非块级盒子的块级容器(如inline-blocks,tablecells,和table-captions),以及overflow值不为"visiable"的块级盒子... 查看详情

前端面试css系列——div垂直水平居中

怎么让一个div垂直水平居中代码片段//HTML<divclass="parent"><divclass="child"></div></div>绝对定位.parent{position:relative;}//第一种.child{position:absolute;top:50%;left:50%;transform:translate(-50%, 查看详情

2019前端面试系列——css面试题(代码片段)

目录盒模型如何实现一个最大的正方形一行水平居中,多行居左水平垂直居中如何实现左右等高布局画三角形link@import导入cssBFC理解 回到顶部盒模型复制/*红色区域的大小是多少?200-20*2-20*2=120*/.boxwidth:200px;height:200px;padding:20p... 查看详情

学习过css,那你知道bfc是什么吗?(代码片段)

...名词,本文就来介绍一下到底什么是BFC公众号:前端印象不定时有送书活动,记得关注~关注后回复对应文字领取:【面试题】、【前端必看电子书】、【数据结构与算法完整代码】、【前端技术交流群】一起来理 查看详情

前端css必知:bfc及其触发条件(代码片段)

文章目录1.bfc的理解(块级格式化上下文)2.触发bfc的方式:3.bfc解决的问题:外边距合并,检测浮动高度,制作右侧自适应盒子4.bfc布局规则特性:5.两栏布局6.块元素高度不设或宽度不设的情况。将本... 查看详情

[轻松拿offer]web前端面试真题css系列---带详解!(代码片段)

临近秋招,不少小伙伴开始了求职之路,面试是十分重要的考验,其次也离不开面试题。网上的面试题零零散散,十分混乱,正好我抽时间帮助大家总结一下。难易程度肯定是从简到难,今天是第一篇的续... 查看详情

前端精选文摘:bfc神奇背后的原理

一、BFC是什么?  在解释BFC是什么之前,需要先介绍Box、FormattingContext的概念。  Box:CSS布局的基本单位  Box是CSS布局的对象和基本单位,直观点来说,就是一个页面是由很多个Box组成的。元素的类型和display属性,决定了... 查看详情

web前端面试题

参考技术A第二章面试题基础篇2.1HTML面试题面试题:行内元素有哪些?块级元素有哪些?空(void)元素有那些?面试题:页面导入样式时,使用link和@import有什么区别?面试题:title与h1的区别、b与strong的区别、i与em的区别?面试题... 查看详情

resources&&learningproject

掘金前端查缺补漏掘金前端必读掘金前端100问面试官系列CSS面试官系列JS面试官系列ES6面试官系列React面试官系列网络手撕JS手撕算法手撕数据结构 查看详情

resources&&learningproject

掘金前端查缺补漏掘金前端必读掘金前端100问面试官系列CSS面试官系列JS面试官系列ES6面试官系列React面试官系列网络手撕JS手撕算法手撕数据结构 查看详情

前端面试题css(代码片段)

文章目录万能居中BFC优化盒模型哪两种模式?什么区别?如何设置常用清除浮动的方法,如不清除浮动会怎样?删格化的原理纯css实现三角形高度不定,宽100%,内一p高不确定,如何实现垂直居中?至少两种方式实现自适应搜索... 查看详情

前端精选文摘:bfc神奇背后的原理------转

  BFC已经是一个耳听熟闻的词语了,网上有许多关于BFC的文章,介绍了如何触发BFC以及BFC的一些用处(如清浮动,防止margin重叠等)。虽然我知道如何利用BFC解决这些问题,但当别人问我BFC是什么,我还是不能很有底气地解释... 查看详情

新手小白必知的5道web前端经典面试题

想成功就业web前端工程师,想要能高薪就业,那么除了好的web前端技能以外,还得有好的面试技巧,如果提前就了解更多企业的面试要求及面试题目,那么可以让我们的面试成功的几率大大的提高,今天就给大家分享5道经典的we... 查看详情

html5前端面试常见问题汇总

基础强化篇聊一聊前端存储。 BFC  前端工程化篇场景:你是第一天来公司上班的,项目代码托管在GitLab,项目地址:[email protected]:org/project.git,现在有一处代码需要你修改。请下完成此项任务中,与git/gitlab相关的... 查看详情

前端css面试题2023前端最新版css模块,高频15问(代码片段)

🥳博       主:初映CY的前说(前端领域)🌞个人信条:想要变成得到,中间还有做到!🤘本文核心:博主收集的CSS面试题目录一、CSS必备面试题1.CSS3新特性2.CSS实现元素两个盒子垂直水平居中方... 查看详情

前端基础面试题之语义化+块级元素和内联元素+css布局盒模型(代码片段)

HTML语义化块状元素和内联元素CSS盒模型BFC理解与应用对于BFC\\color#FF0000BFCBFC的布局方式,会在下一篇博客中详细进行介绍,这个知识点在CSS布局中还是很重要的。https://blog.csdn.net/u012396955/article/details/111315837圣杯布局和双... 查看详情