BFC知识点概括与总结
什么是BFC?如何生成一个BFC?BFC有什么作用?
一:什么是BFC?
首先了解CSS中两个概念:box和formatting context。
Box:CSS布局中的基本单位。一个页面由多个box组成,元素的类型和display的属性决定了这个box的类型,不同类型的box会参与不同的formatting context,box内的元素会以不同的方式进行渲染。主要的box类型有以下两种:
1.块级元素block-leave block:它的display属性为block, list-item, table,参与block formatting context;
2.行级元素inline-level box:它的display属性为inline, inline-block, inline-table,参与inline formatting context。
formatting context:W3C CSS2.1规范中的概念。它是页面中的一块渲染区域,有一套渲染规则,它决定其子元素如何定位、和其他元素之间的关系与相互作用。常见的formatting context有BFC(Block formatting context)和IFC(Inline formatting context)。
BFC全称是“Block Formatting Context”,中文直译“块级格式化上下文”。它是一个独立的渲染区域(formatting context)。只有block-level box参与,它规定内部的block-level box如何布局,并且与这个区域外部毫不相干。
BFC布局规则:
- 内部的box会在垂直方向一个接一个的放置
- box垂直方向的距离由margin决定,属于同一个BFC的两个相邻box的margin会发生重叠
- 每个元素margin box的左边,与包含块border box的左边相接触(对于从左向右的格式化,否则相反),即使存在浮动也是如此;
- BFC区域不会与float元素重叠
- BFC是页面上的一个隔离的独立容器,容器内的子元素不会影响到外面的元素
- 计算BFC高度时,浮动元素也参与计算
如何生成BFC:
- 根元素
- float属性不为none
- position为absolute或者fixed
- dispaly为inline-block,table-cell, table-caption, flex, inline-flex
- overflow不为visible
有何作用:
1.自适应两栏布局
2.清除浮动
3.防止垂直margin重叠(外边距合并)
4.防止父子边距合并(外边距塌陷)
BFC知识点概括与总结的更多相关文章
- C语言程序设计基础知识点概括
C语言程序设计基础知识点概括 C语言程序设计基础知识点1.函数是C语言的基本构成单位.main函数是C语言程序的唯一入口.2.C语言程序开发过程. 编译过程:将以.c或.cpp结尾的源程序文件经过编译 ...
- JavaEE权限管理系统的搭建(一)--------项目中用到的知识点概括
转战Java有一段时间了,.net 已不再开发的新的工程,基本上在维护,最近大半年时间在学习Java,今天抽空将学习的到的知识,应用到了一个权限管理系统的小项目中,特此记录一下.代码如有不对之处,希望 ...
- HTML知识点概括——一篇文章带你完全掌握HTML
HTML知识点概括 前端三件套分别是HTML3,CSS5,JavaScript 稍微介绍一下W3C标准: 结构化标准语言(HTML) 表现标准语言(CSS) 行为标准(DOM,JavaScript) ...
- k近邻法(KNN)知识点概括
分类一般分为两种: 积极学习法:先根据训练集构造模型,然后根据模型对测试集分类 消极学习法:推迟建模,先简单存储训练集,等到给定测试集时再进行建模,如KNN算法. 1. 简述 KNN的核心思想就是:物 ...
- vue基本知识点概括
目录 Vue 渐进式 JavaScript 框架 一.走进Vue 1.what -- 什么是Vue 2.why -- 为什么要学习Vue 3.special -- 特点 4.how -- 如何使用Vu ...
- 初次接触GWT,知识点总括
初次接触GWT,知识点概括 前言 本人最近开始研究 GWT(Google Web Toolkit) ,现将个人的一点心得贴出来,希望对刚开始接触 GWT的程序员们有所帮助,也欢迎讨论,共同进步. 先说 ...
- 知识点回顾——C语言知识点复习梳理,看看你是不是都完全掌握了
前段时间,我分享了关于C语言的一些必备知识点,感兴趣的朋友可以查看我的往期文章,或是关注公众号c语言进阶之路,查看次条文章,或搜索关键字"编程小白基础必备",就能查看相关文章了. ...
- CSS基本知识点——带你走进CSS的新世界
CSS基本知识点 我们在学习HTML之后,前端三件套第二件便是CSS,但CSS内容较多,我们分几部分讲解: (如果没有学习HTML,请参考之前文章:HTML知识点概括--一篇文章带你完全掌握HTML& ...
- java 环境配置 及java 历史
知识点概括:1 Java 的历史 2 JDK 的配置 3 文件的编译与执行 ...
随机推荐
- DRF 商城项目 - 用户操作(收藏, 留言, 收货地址)
个人收藏 整体逻辑类似于 个人中心 ( 个人中心的相关逻辑梳理详情 点击这里 ) 也是两个序列化组价的分流 查看收藏 ( list ) 详情指向 收藏详情 的组价 创建收藏 ( create ) ...
- OMS自动化运维平台部署
OMS自动化运维平台部署 一.基础环境安装 yum -y install mariadb mariadb-devel mariadb-server wget epel-release python-d ...
- Flex布局【弹性布局】学习
先让我们看看在原来的学习中遇到的问题 之前在软件工程的大作业中,自己从零开始学习如何开发一个网站,从页面,到后台,当然数据库是大二的必修课 在学习如何编写一个静态页面的时候,完全是自学,自己摸索,所以 ...
- linux 单用户密码修改
1.启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式. 2.在linux16/inux/linuxef所在参数行ro更改为init=/sysroot/bin/sh 3.按Crl+x启动到she ...
- 记录下扣jio的2018年
踩着18年的尾巴,写下这篇总结,既给18年画上句号,也展望19年,制定下计划. 自17年底正式接手团队项目管理工作以来,虽然前面一年都干了大部分工作,但正式走到这个位置上来,还是有一部分的期待.接手之 ...
- Helm包管理工具(简介、安装、方法)
认识Helm 每次我们要部署一个应用都需要写一个配置清单(维护一套yaml文件),但是每个环境又不一样.部署一套新的环境成本是真的很高.如果我们能够使用类似于yum的工具来安装我们的应用的话那就太好了 ...
- markdown 转义字符
\\ 反斜杠 \` 反引号 \* 星号 \_ 下划线 \{\} 大括号 \[\] 中括号 \(\) 小括号 \# 井号 \+ 加号 \- 减号 \. 英文句号 \! 感叹号
- Dell台式机Window10恢复重装window7步骤
1.开机页面出现Dell标识时,连续点击F2 2.进入bois页面,选择boot ,将光标移动到USB启动盘符位置, 3.按 - 号,将 USB Srorage Device 改为第一启动项,F10保 ...
- localhost 将您重定向的次数过多
localhost 将您重定向的次数过多 问题描述:在项目中,出现 localhost 将您重定向的次数过多 ,有可能是因为设置重定向的时候,自己重定向到自己,或者重定向成环,导致无限的重定向.检查重 ...
- docker安装elasticsearch
docker search elasticsearch 选择一个版本,拉取镜像 docker pull elasticsearch: 查看镜像 docker images 通过镜像,启动一个容器,并将 ...