首页 > 其他分享 >CSS中BFC的渲染规则有哪些?有哪些应用场景?

CSS中BFC的渲染规则有哪些?有哪些应用场景?

时间:2023-02-09 13:07:50浏览次数:38  
标签:BFC 哪些 元素 100px inner background 10px CSS


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>

效果如下所示:

CSS中BFC的渲染规则有哪些?有哪些应用场景?_前端开发

接下来将inner元素设为浮动:

.inner {
float: left;
background: #08BDEB;
height: 100px;
width: 100px;
}

会产生这样的塌陷效果:

CSS中BFC的渲染规则有哪些?有哪些应用场景?_边距_02

但如果我们对父元素设置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>

效果如下所示:

CSS中BFC的渲染规则有哪些?有哪些应用场景?_面试_03

此时三个元素的上下间隔都是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的渲染规则有哪些?有哪些应用场景?_html_04

可以明显地看到间隔变大了,而且是原来的两倍,符合我们的预期。

标签:BFC,哪些,元素,100px,inner,background,10px,CSS
From: https://blog.51cto.com/u_15959833/6046855

相关文章

  • CSS 如何实现“品”字布局?
    实现代码如下: <!doctypehtml><html><head><metacharset="utf-8"><title>品字布局</title><style>*{margin:0;padding:0;}body{......
  • 计算下面CSS代码中红色和绿色面积分别是多少?
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Co......
  • CSS 如何实现“圣杯”布局?
     “圣杯”布局是一种典型的网页布局结构,如下所示:实现方式有多种,下面一一给出代码实现。1.Flex布局来实现<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"......
  • 如何用CSS画一个五角星?
    对于这个五角星而言,我们可以拆分成三个部分,如下所示:将五角星分成三部分,对于最上面的三角,利用边框就可以快速实现,这个不难。但是下面的两个如何实现呢?其实也非常的简单,想一......
  • 浮动布局有哪些优点?有什么缺点?清除浮动有哪些方式?
    浮动布局简介:当元素浮动以后可以向左或向右移动,直到它的外边缘碰到包含它的框或者另外一个浮动元素的边框为止。元素浮动以后会脱离正常的文档流,所以文档的普通流中的框就变......
  • 让元素垂直居中的方法有哪些?
     如何让元素垂直居中?这是一道很常见的面试题,大致有以下5种:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"con......
  • CSS 中最后一行中元素如何向左对齐
    自从CSS3.0出来以后,很多的页面布局都用弹性布来实现,特别是移动端,但是弹性布局也有它的弊端,就是最后一行如果数量不够,不会像我们正常的想法一样居左对齐。效果如下:代码如下:......
  • 让元素水平居中的方法有哪些?
     如何让元素水平居中?这是一道很常见的面试题,对于已知宽度和未知宽度的处理方法又有所不同,大致有以下7种:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......
  • css3溢出隐藏的方法
    如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。实现方法:overflow: hidden;text-overflow......
  • CSS 3.0实现文字悬停特效
    给大家分享一个用CSS3.0实现的网页特效,效果如下:以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......