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.
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 isabsolute
orfixed
) - 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.
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:
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:
Set BFC for the second element:
.right { height: 100px; background-color: red; overflow: hidden; }
The effect is as shown:
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; }
(学习视频分享: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!

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

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

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

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

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

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

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

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


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

Notepad++7.3.1
Easy-to-use and free code editor

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft
