iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >css3中bfc的概念是什么
  • 690
分享到

css3中bfc的概念是什么

2024-04-02 19:04:59 690人浏览 八月长安
摘要

这篇文章主要介绍“css3中bfc的概念是什么”,在日常操作中,相信很多人在CSS3中bfc的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css3中bfc的概念是

这篇文章主要介绍“css3中bfc的概念是什么”,在日常操作中,相信很多人在CSS3中bfc的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css3中bfc的概念是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在css3中,BFC的中文意思为“块格式化上下文”,是WEB页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。简单来说,BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。 BFC的作用:1、解决外边距折叠问题;2、BFC的区域不会与浮动的元素区域重叠,可创建CSS中常用的两栏布局;3、清除元素内部的浮动。

教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

一、什么是BFC

官方定义:BFC(Block Formatting Context)块格式化上下文, 是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。

说人话:BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。 我们经常使用到BFC,只不过不知道它是BFC而已。

二、如何创建一个BFC

常用的方式有以下几种:

  • 浮动元素(元素的float不是 none,指定float为left或者right就可以创建BFC)

  • 绝对定位元素(元素的 positionabsolutefixed

  • display:inline-block,display:table-cell,display:flex,display:inline-flex

  • overflow指定除了visible的值

看吧,是不是经常在代码中用到上边列举的属性,你在不知不觉中就开启了BFC,只是你不知道它是BFC而已。

三、BFC有什么特点

  • 在BFC中,块级元素从顶端开始垂直地一个接一个的排列。(当然了,即便不在BFC里块级元素也会垂直排列)

  • 如果两个块级元素属于同一个BFC,它们的上下margin会重叠(或者说折叠),以较大的为准。但是如果两个块级元素分别在不同的BFC中,它们的上下边距就不会重叠了,而是两者之和。

  • BFC的区域不会与浮动的元素区域重叠,也就是说不会与浮动盒子产生交集,而是紧贴浮动边缘。

  • 计算BFC的高度时,浮动元素也参与计算。BFC可以包含浮动元素。(利用这个特性可以清除浮动)

  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。

四、BFC有什么用

1、解决外边距折叠问题

外边距折叠(Margin collapsing)也只会发生在属于同一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;
}

对第一个div的margin-bottom设置为10px,第二个div的margin-top设置为20px,我们可以看到两个盒子最终的边距是20px,是两者之中较大的一个。这就是外边距重叠的问题。

css3中bfc的概念是什么

为了解决这个问题,我们可以让这两个div分属于不同的BFC,或者只要把其中一个div放到BFC中就可以。原因是:BFC就是页面上的一个隔离的独立容器,容器里面的元素不会对外边产生影响。

html:

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

css:

.wrapper{
  
  overflow: hidden;
}

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

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

现在的代码可以解决外边距重叠的问题啦!但是注意,在我们这个案例中,虽然指定position属性为absolute和fixed,或者float指定为left、right也可以创建BFC,但是这个元素会从当前文档流中移除,不占据页面空间,并且可以和其它元素重叠。导致下边的div会把上边的div给覆盖掉。

2、制作两栏布局

BFC的区域不会与浮动的元素区域重叠。

我们可以利用这个特性来创建CSS中常用的两栏布局(左边宽度固定,右边宽度自适应)。

HTML:

<div class="left"></div>
<div class="right"></div>

CSS:

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

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

效果如图所示:

css3中bfc的概念是什么

另一个案例:

html:

<div class="father">
  <div class="left"></div>
  <div class="right">
    哈哈哈哈哈哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
  </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;
}

当在父元素中只设定一个盒子浮动,另一个不浮动时,会造成第二个盒子在第一个盒子的下方,被覆盖掉一部分(但文字不会被覆盖)。

效果如图:

css3中bfc的概念是什么

给第二个元素设置BFC:

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

效果如图:

css3中bfc的概念是什么

3、清除元素内部的浮动

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

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

html:

<div class="div1">
  <div class="son1">a</div>
  <div class="son2">b</div>
</div>

css:

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

  
  overflow: hidden;
}

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

.son2 {
  background-color: greenyellow;
}

css3中bfc的概念是什么

到此,关于“css3中bfc的概念是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: css3中bfc的概念是什么

本文链接: https://www.lsjlt.com/news/98399.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • css3中bfc的概念是什么
    这篇文章主要介绍“css3中bfc的概念是什么”,在日常操作中,相信很多人在css3中bfc的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css3中bfc的概念是...
    99+
    2024-04-02
  • css3中transition的概念是什么
    今天小编给大家分享一下css3中transition的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
    99+
    2024-04-02
  • css3中flexbox的概念是什么
    本文小编为大家详细介绍“css3中flexbox的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“css3中flexbox的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2024-04-02
  • html css3的概念是什么
    本文小编为大家详细介绍“html css3的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“html css3的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2024-04-02
  • html5与css3的概念是什么
    今天小编给大家分享一下html5与css3的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
  • rgba在css3的概念是什么
    这篇文章主要讲解了“rgba在css3的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“rgba在css3的概念是什么”吧! ...
    99+
    2024-04-02
  • Css3的概念和优势是什么
    这篇文章主要介绍“Css3的概念和优势是什么”,在日常操作中,相信很多人在Css3的概念和优势是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Css3的概念和优势是什么”...
    99+
    2024-04-02
  • jquery中$的概念是什么
    这篇文章主要讲解了“jquery中$的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery中$的概念是什么”吧! ...
    99+
    2024-04-02
  • linux中gnu的概念是是什么
    GNU是一种自由和开放源代码的操作系统,其全称为“GNU's Not Unix”。GNU项目由理查德·斯托曼(Richard Sta...
    99+
    2023-09-22
    linux
  • react中hook的概念是什么
    本文小编为大家详细介绍“react中hook的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“react中hook的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • JavaScript中ceil的概念是什么
    本篇内容主要讲解“JavaScript中ceil的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中ceil的概念是什么”吧! ...
    99+
    2024-04-02
  • linux中ppid的概念是什么
    今天小编给大家分享一下linux中ppid的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在linux中,ppid...
    99+
    2023-06-30
  • linux中mapper的概念是什么
    今天小编给大家分享一下linux中mapper的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。linux中,map...
    99+
    2023-06-30
  • c#中#region的概念是什么
    在C#中,#region 是用来定义一个折叠区域的标记,可以帮助开发人员组织和管理代码。通过使用 #region 标记,可以将一段代...
    99+
    2024-03-05
    c#
  • linux中version的概念是什么
    这篇“linux中version的概念是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux中version的概念是...
    99+
    2023-06-29
  • linux中lun的概念是什么
    本篇内容介绍了“linux中lun的概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在linux中,lun的意思是逻辑单元号,是为了...
    99+
    2023-06-29
  • node中mongooes的概念是什么
    这篇文章主要介绍“node中mongooes的概念是什么”,在日常操作中,相信很多人在node中mongooes的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”no...
    99+
    2024-04-02
  • jquery中show的概念是什么
    这篇文章主要介绍了jquery中show的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jquery中show的概念是什么文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • node中multer的概念是什么
    这篇文章主要介绍“node中multer的概念是什么”,在日常操作中,相信很多人在node中multer的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”node中m...
    99+
    2024-04-02
  • node中token的概念是什么
    这篇文章主要讲解了“node中token的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“node中token的概念是什么”吧! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作