前端面试 CSS— BFC的渲染规则有哪些?有哪些应用场景?
Posted aiguangyuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端面试 CSS— BFC的渲染规则有哪些?有哪些应用场景?相关的知识,希望对你有一定的参考价值。
1. BFC渲染规则
1. BFC垂直方向边距重叠;
2. BFC的区域不会与浮动元素的box重叠;
3. BFC是一个独立的容器,外面的元素不会影响里面的元素;
4. 计算BFC高度的时候浮动元素也会参与计算。
2. BFC的应用场景
1. 防止浮动导致父元素高度塌;
现有如下代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<style>
.container {
border: 10px solid red;
}
.inner {
background: #08BDEB;
height: 100px;
width: 100px;
}
</style>
</head>
<body>
<div class="container">
<div class="inner"></div>
</div>
</body>
</html>
效果如下所示:
接下来将inner元素设为浮动:
.inner {
float: left;
background: #08BDEB;
height: 100px;
width: 100px;
}
会产生这样的塌陷效果:
但如果我们对父元素设置BFC后,这样的问题就解决了。
.container {
border: 10px solid red;
overflow: hidden;
}
同时这也是清除浮动的一种方式。
2. 避免外边距折叠;
两个块同一个BFC会造成外边距折叠,但如果对这两个块分别设置BFC,那么边距重叠的问题就不存在了。
现有如下代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<style>
.container {
background-color: green;
overflow: hidden;
}
.inner {
background-color: lightblue;
margin: 10px 0;
}
</style>
</head>
<body>
<div class="container">
<div class="inner">1</div>
<div class="inner">2</div>
<div class="inner">3</div>
</div>
</body>
</html>
效果如下所示:
此时三个元素的上下间隔都是10px,因为三个元素同属于一个BFC。 现在我们做如下操作:
<div class="container">
<div class="inner">1</div>
<div style="overflow: hidden;">
<div class="inner">2</div>
</div>
<div class="inner">3</div>
</div>
修改后的效果如下:
可以明显地看到间隔变大了,而且是原来的两倍,符合我们的预期。
以上是关于前端面试 CSS— BFC的渲染规则有哪些?有哪些应用场景?的主要内容,如果未能解决你的问题,请参考以下文章