BFC浅析
1.定义
BFC(Block formatting context)即"块级格式化上下文"。它是一个独⽴的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部无关。
block-level box:display 属性为 block, list-item, table 的元素,会生成 block-level box。并且参与 block fomatting context;
2.BFC布局的规则:
- 内部的Box会在垂直方向,一个接一个地放置。
- Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发⽣生重叠。
- 每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
- BFC的区域不会与float box重叠。
- BFC就是页⾯上的一个隔离的独立容器,容器⾥面的⼦子元素不会影响到外面的元素,外面的元素也同样不会影响到容器里面的元素。
- 计算BFC的高度时,浮动元素也参与计算。
3.如何生成BFC?
- 根元素;
- float属性不为none;
- position为absolute或fixed;
- display为inline-block, table-cell, table-caption, flex, inline-flex;
- overflow不为visible.
4.BFC的作用
- 清除内部浮动,防止父元素塌陷
.wrap{
/*overflow: hidden;*/如果不在wrap生成一个BFC,内部div浮动,其父div的高度就会塌陷.
width:300px;
border:1px solid red;
}
.inner{
float:left;
width:100px;
height:100px;
background-color: blue;
} .outer{
width:120px;
height:150px;
background-color: green;
}
<div class="wrap">
<div class="inner">inner</div>
</div>
<div class="outer">outer</div>
- 防止垂直方向margin 重叠
.wrap{
width:300px;
border:1px solid red;
}
.top{ width:100px;
height:100px;
background-color: blue;
margin-bottom: 100px;
} .bottom{
margin-top: 100px;
width:100px;
height:100px;
background-color: green;
}
<div class="top">top</div>
<div class="bottom">bottom</div>
上面两个div的垂直间距在页面上其实只有100px;这是因为它们同处在根元素的BFC中,同一个BFC的两个相邻Box的margin会发生重叠(具体多少,从两个margin的值中取大值).解决方式的话就是让它们处于不同的BFC中,可以在其中一个div外面套一个div,外面的div设置overflow:hidden;
.wrap{
overflow: hidden;
width:300px;
border:1px solid red;
}
.top{ width:100px;
height:100px;
background-color: blue;
margin-bottom: 100px;
} .bottom{
margin-top: 100px;
width:100px;
height:100px;
background-color: green;
}
<div class="wrap">
<div class="top">top</div>
</div>
<div class="bottom">bottom</div>
总之,BFC就是一个独立的容器,它里面的元素和外面的元素互不影响.
BFC浅析的更多相关文章
- BFC与合并 浅析
BFC BFC 全称 Block Formatting Context.每个渲染区域用formatting context表示,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用在正常流中的盒 ...
- 浅析CSS里的 BFC 和 IFC
前端日刊 登录 浅析CSS里的 BFC 和 IFC 2018-01-29 阅读 1794 收藏 3 原链:segmentfault.com 分享到: 前端必备图书<Web安全开发指南 掌握白 ...
- 【转】浅析BFC及其作用
1. 什么是BFC BFC(block formatting context):简单来说,BFC 就是一种属性,这种属性会影响着元素的定位以及与其兄弟元素之间的相互作用. 中文译为块级格式化上下文.是 ...
- 浅析CSS中的BFC和IFC
1. 为什么会有BFC和IFC 首先要先了解两个概念:Box和formatting context: Box:CSS渲染的时候是以Box作为渲染的基本单位.Box的类型由元素的类型和display属性 ...
- BFC之浅析篇
BFC是什么呢? 掏粪男孩? 当然不是咯.BFC,英文名Block formatting context,直译为“块级格式化上下文”.它是W3C CSS 2.1规范中的一个概念,决定了元素如何对内容进 ...
- 浅析BFC布局的概念以及作用
BFC的概念以及作用 BFC的定义: (Block formatting context)直译为"块级格式化上下文".它是一个独立的渲染区域,只有Block-level box参与 ...
- 浅析前端BFC布局
一.常见定位方案 二.BFC 概念 BFC 即 Block Formatting Contexts (块级格式化上下文),它属于上述定位方案的普通流. 它是一个独立的渲染区域,只有Block-leve ...
- 浅析BFC及其作用
本文链接:https://blog.csdn.net/riddle1981/article/details/52126522
- BFC之宽度自适应布局篇
说到自适应布局,我们曾在“抛砖引玉之宽度自适应布局”一文中学习过.当时的核心思想主要是利用float+margin的形式.利用块状元素的流体特性,然后计算出float元素的宽度,并赋予到块状元素的相应 ...
随机推荐
- [dp][uestc oj][最长上升子序列] LIS N - 导弹拦截
N - 导弹拦截 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- JEECMS开发问题汇总
1 添加Controller 将controller文件放在com.jeecms.cms.action.front包中, 图1.1 然后在jeecms-servlet-front-action.xml ...
- How to restrict root user to access or modify a file and directory in Linux
Now in this article I will show you steps to prevent or restrict access of root user to access certa ...
- NOIP模拟赛 魔方
[题目描述] ccy(ndsf)觉得手动复原魔方太慢了,所以他要借助计算机. ccy(ndsf)家的魔方都是3*3*3的三阶魔方,大家应该都见过. (3的“顺时针”改为“逆时针”,即3 4以图为准.) ...
- Docker 镜像&仓库 获取及推送镜像
docker查看.删除镜像 docker镜像存储位置: /var/lib/docker 查看docker信息也可以查看保存位置 docker info 1.列出镜像 docker images -aa ...
- idea 关于高亮显示与选中字符串相同的内容踩过的坑
由 Eclipse 切换到 idea 遇到了很多不熟的地方和踩过的坑,下面记录 idea 关于高亮显示与选中字符串相同的内容踩过的坑. IDEA 2017.2.1 版本修改 Identifier un ...
- Python爬取全站妹子图片,差点硬盘走火了!
在这严寒的冬日,为了点燃我们的热情,今天小编可是给大家带来了偷偷收藏了很久的好东西.大家要注意点哈,我第一次使用的时候,大意导致差点坏了大事哈! 1.所需库安装 2.网站分析 首先打开妹子图的官网(m ...
- ASCII码表含义
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a.b.c.d这样的52个字母(包括大写)以及0.1等数字还有一些常用的符号(例如*.#. ...
- GPIO程序在PC上的模拟学习
#include <stdio.h> #include <malloc.h> #include <memory.h> typedef struct gpio { i ...
- zoj 4057
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> ...