search
What is bfc in css3Aug 01, 2022 pm 04:49 PM
csscss3bfc

In CSS3, BFC's Chinese meaning is "Block Formatting Context", which is part of the visual CSS rendering of the Web page. It is the area where the layout process of the block box occurs, and where floating elements interact with other elements. Area. To put it simply, BFC is an isolated and independent container on the page. The sub-elements inside the container will not affect the elements outside. The functions of BFC: 1. Solve the problem of margin folding; 2. The BFC area will not overlap with the floating element area, and can create a two-column layout commonly used in CSS; 3. Clear the float inside the element.

What is bfc in css3

The operating environment of this tutorial: Windows 7 system, CSS3&&HTML5 version, Dell G3 computer.

1. What is BFC

Official definition: BFC (Block Formatting Context) block formatting context, is the visual CSS of the Web page The part of rendering that is the area where the layout process of the block box occurs and where floated elements interact with other elements.

Speaking in human terms: BFC is an isolated independent container on the page. The sub-elements inside the container will not affect the elements outside. We often use BFC, but we just don’t know it is BFC.

2. How to create a BFC

The commonly used methods are as follows:

  • Floating element (the float of the element is not none, specify float as left or right to create BFC)
  • Absolutely positioned element (the position of the element is absolute or fixed
  • display:inline-block, display:table-cell, display:flex, display:inline-flex
  • overflow specifies the value except visible

Look, do you often use the attributes listed above in your code? You have turned on BFC without knowing it, but you don’t know it is BFC.

3. What are the characteristics of BFC

  • In BFC, block-level elements are arranged vertically one after another starting from the top. (Of course, block-level elements will be arranged vertically even if they are not in the BFC)
  • If two block-level elements belong to the same BFC, their upper and lower margins will overlap (or fold), whichever is larger. allow. But if two block-level elements are in different BFCs, their top and bottom margins will not overlap, but the sum of the two.
  • The BFC area will not overlap with the floating element area, that is to say, it will not intersect with the floating box, but will stick to the floating edge.
  • When calculating the height of BFC, floating elements also participate in the calculation. BFC can contain floated elements. (Use this feature to clear floats)
  • BFC is an isolated independent container on the page. The sub-elements in the container will not affect the elements outside.

4. What is the use of BFC

1. Solve the problem of margin folding

Margin collapsing will only occur between block-level elements belonging to the same BFC.

html:

<div class="div1"></div>
<div class="div2"></div>

css:

.div1 {
  width: 100px;
  height: 100px;
  background-color: green;
  margin-bottom: 10px;
}

.div2 {
  width: 100px;
  height: 100px;
  background-color: red;
  margin-top: 20px;
}

Set the margin-bottom of the first div to 10px and the margin-top of the second div to 20px. We You can see that the final margin of the two boxes is 20px, which is the larger of the two. This is the problem of overlapping margins.

What is bfc in css3

In order to solve this problem, we can make these two divs belong to different BFCs, or just put one of the divs in the BFC. The reason is: BFC is an isolated independent container on the page, and the elements inside the container will not affect the outside world.

html:

<div>
  <div></div>
</div>
<div></div>

css:

.wrapper{
  /* 开启BFC */
  overflow: hidden;
}

.div1 {
  width: 100px;
  height: 100px;
  background-color: green;
  margin-bottom: 10px;
}

.div2 {
  width: 100px;
  height: 100px;
  background-color: red;
  margin-top: 20px;
}

The current code can solve the problem of overlapping margins! But note that in our case, although BFC can be created by specifying the position attribute as absolute and fixed, or specifying float as left or right, this element will be removed from the current document flow, does not occupy page space, and can be combined with Other elements overlap. As a result, the lower div will cover the upper div.

2. Make a two-column layout

The BFC area will not overlap with the floating element area.

We can use this feature to create the two-column layout commonly used in CSS (fixed width on the left and adaptive width on the right).

HTML:

<div></div>
<div></div>

CSS:

.left {
  width: 200px;
  height: 100px;
  background-color: green;
  float: left;
}

.right {
  height: 100px;
  background-color: red;
  overflow: hidden; /* 创建BFC */
}

The effect is as shown in the picture:

What is bfc in css3

Another case:

html:

<div>
  <div></div>
  <div>
    哈哈哈哈哈哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
  </div>
</div>

css:

.father {
  width: 200px;
  border: 5px solid blue;
}

.left {
  width: 50px;
  height: 50px;
  background-color: green;
  float: left;
}

.right {
  height: 100px;
  background-color: red;
}

When only one box is set to float in the parent element and the other is not floating, it will cause the second box to be in the first The bottom part of the box is partially covered (but the text will not be covered).

The effect is as shown:

What is bfc in css3

Set BFC for the second element:

 .right {
   height: 100px;
   background-color: red;
   overflow: hidden;
 }

The effect is as shown:

What is bfc in css3

3、清除元素内部的浮动

这里清除浮动的意思并不是清除你设置的元素的浮动属性,而是清除设置了浮动属性之后给别的元素带来的影响。例如我们给子元素设置浮动,那么父元素的高度就撑不开了。

BFC有一个特性:计算BFC的高度时,浮动元素也参与计算,利用这个特性可以清除浮动。

html:

<div>
  <div>a</div>
  <div>b</div>
</div>

css:

.div1 {
  width: 150px;
  border: 1px solid red;

  /*使用BFC来清除浮动*/
  overflow: hidden;
}

.son1, .son2 {
  width: 100px;
  height: 100px;
  background-color: blue;
  float: left;
}

.son2 {
  background-color: greenyellow;
}

What is bfc in css3

(学习视频分享:web前端入门

The above is the detailed content of What is bfc in css3. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
css怎么隐藏元素但不占空间css怎么隐藏元素但不占空间Jun 01, 2022 pm 07:15 PM

两种方法:1、利用display属性,只需给元素添加“display:none;”样式即可。2、利用position和top属性设置元素绝对定位来隐藏元素,只需给元素添加“position:absolute;top:-9999px;”样式。

原来利用纯CSS也能实现文字轮播与图片轮播!原来利用纯CSS也能实现文字轮播与图片轮播!Jun 10, 2022 pm 01:00 PM

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

css3什么是自适应布局css3什么是自适应布局Jun 02, 2022 pm 12:05 PM

自适应布局又称“响应式布局”,是指可以自动识别屏幕宽度、并做出相应调整的网页布局;这样的网页能够兼容多个不同的终端,而不是为每个终端做一个特定的版本。自适应布局是为解决移动端浏览网页而诞生的,能够为使用不同终端的用户提供很好的用户体验。

css3如何实现鼠标点击图片放大css3如何实现鼠标点击图片放大Apr 25, 2022 pm 04:52 PM

实现方法:1、使用“:active”选择器选中鼠标点击图片的状态;2、使用transform属性和scale()函数实现图片放大效果,语法“img:active {transform: scale(x轴放大倍数,y轴放大倍数);}”。

css3动画效果有变形吗css3动画效果有变形吗Apr 28, 2022 pm 02:20 PM

css3中的动画效果有变形;可以利用“animation:动画属性 @keyframes ..{..{transform:变形属性}}”实现变形动画效果,animation属性用于设置动画样式,transform属性用于设置变形样式。

css3怎么设置动画旋转速度css3怎么设置动画旋转速度Apr 28, 2022 pm 04:32 PM

在css3中,可以利用“animation-timing-function”属性设置动画旋转速度,该属性用于指定动画将如何完成一个周期,设置动画的速度曲线,语法为“元素{animation-timing-function:速度属性值;}”。

一文了解CSS3中的新特性 ::target-text 选择器一文了解CSS3中的新特性 ::target-text 选择器Apr 12, 2022 am 11:24 AM

本篇文章带大家一起深入了解一下CSS3中的新特性::target-text 选择器,聊聊该选择器的作用和使用方法,希望对大家有所帮助!

css3线性渐变可以实现三角形吗css3线性渐变可以实现三角形吗Apr 25, 2022 pm 02:47 PM

css3线性渐变可以实现三角形;只需创建一个45度的线性渐变,设置渐变色为两种固定颜色,一个是三角形的颜色,另一个为透明色即可,语法“linear-gradient(45deg,颜色值,颜色值 50%,透明色 50%,透明色 100%)”。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft