您现在的位置是:网站首页> 编程资料编程资料
CSS使用BFC规则布局引发外层div包裹内层div的处理方法10分钟理解CSS BFC原理及其应用浅析CSS里的BFC和IFC的用法浅谈CSS潜藏着的BFCcss布局之BFC模式(block formatting context)CSS布局基础BFC CSS理解块级格式上下文(BFC)
2021-09-05
1030人已围观
简介 BFC情况下人们通常在div中使用float和margin,这会经常出现一些问题,这里就来看一下CSS使用BFC规则布局引发外层div包裹内层div的处理方法,需要的朋友可以参考下.
BFC的概念
BFC全称Block Formatting Context ,直译“块级格式化上下文”,也有译作“块级格式化范围”。它是 W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。通俗的讲,就是一个div内部,我们用float和margin布局元素。
BFC布局规则:
1.内部的Box会在垂直方向,一个接一个地放置。
2.Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠
3.每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
4.BFC的区域不会与float box重叠。
5.BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。
6.计算BFC的高度时,浮动元素也参与计算
创建一个BFC
一个BFC可以被显式的触发。如果想要创建一个新的BFC,只需要给它添加上面提到的任何一个CSS样式就可以了。
例如,请看下面的 HTML :
- <div class="container">
- Some Content here
- div>
一个新的BFC可以通过给容器添加任何一个触发BFC的CSS样式,如 overflow: scroll , overflow: hidden , display: flex , float: left ,或者 display: table 来创建。
display:table 可能会产生一些问题
overflow:scroll 可能会显示不必要的滚动条
float:left 将会把元素置于容器的左边,其他元素环绕着它
overflow:hidden 将会剪切掉溢出的元素
所以每当想要创建一个新的BFC的时候,我们会基于我们的需求选择最好的样式条件。为了一致性,我在这篇文章所给出的例子中全部使用了 overflow: hidden
- container {
- overflow: hidden;
- }
你可以自由使用除了 overflow: hidden 之外的样式声明。
BFC布局引发的问题
我们看看BFC布局引发的问题吧。
例如如下代码
- "en">
- "UTF-8">
-
Clear float - "container">"p">"c">"c">"c">
我们希望看到的效果是:
结果出现如下:
解决方案:
解决方法一般有2种。
1.利用 clear属性,清除浮动
2.使父容器形成BFC
清除浮动的方法,我们可以用如下办法:
对父元素加一个class
- <div class="p floatfix">
- <div class="c">1div>
- <div class="c">2div>
- <div class="c">3div>
- div>
添加如下CSS
- .floatfix{
- *zoom:1;
- }
- .floatfix:after{
- content:"";
- display:table;
- clear:both;
- }
这种方法是比较好的解决方案!
另一种解决方法就是让父元素成为BFC,这种方法有个小弊端,就是父元素也变成了浮动,不推荐用这种方法!
相关内容
- css水平居中的各种方法总结(推荐)浅谈css处理水平居中的问题Flexbox制作CSS布局实现水平垂直居中的简单实例关于css水平居中的小小探讨浅析CSS实现水平垂直同时居中的5种思路CSS实现水平居中的4种思路简要概述css三种方法实现div在浏览器水平居中CSS水平居中总结(新手必看篇)
- CSS Web安全字体组合详解移动端Web页面的CSS3 flex布局快速上手指南详解CSS制作Web页面条纹背景样式的技巧像素密度与CSS3的viewport在移动端Web响应式布局中的运用推荐WEB开发者最佳HTML5和CSS3代码生成器CSS实现带倒三角标记的WEB标准菜单效果代码
- CSS的三列式"圣杯布局"方案完全解析浅谈css双飞翼布局和圣杯布局CSS布局之圣杯布局与双飞翼布局 面试必问:圣杯布局和双飞翼布局的区别
- 网站设计之合理架构CSS网站设计效果体验 之七种不同的色系电子商务网站设计分析六:商品详情页设计使用这5个网站设计的技巧,可以让你的销售额增加300%如何做一个适合自己品牌的酒店网站?19个美丽的度假酒店网站设计欣赏网站设计分析:模块化--高效重构如何为网站设计出色的横幅 为网站设计出色横幅的方法关于网站设计中网页情景化设计的方法介绍(图)网站设计之第一印象 注意用户体验浅谈合理架构CSS我的css架构理念—因人而异 没有最优 只有适合
- CSS两列布局实现方式总结一文汇总 CSS 两列布局和三列布局的具体使用CSS实现页面两列布局与三列布局的方法示例横向两列布局(左列固定,右列自适应)的4种CSS实现方式学习DIV+CSS网页布局之两列布局CSS三列布局两端固定宽度中间自适应CSS布局实例代码 两列布局实例CSS实现两列布局的N种方法
- css全屏背景图片设置,django加载图片路径详解css里面图片路径问题(同包/不同包)探讨完美解决webpack打包css背景图片路径问题
- 深入理解DIV和SPAN的区别关于div中img,span垂直居中的问题浅谈Span和Div的区别div与span的区别和使用示例DIV和SPAN垂直居中对齐的实现方法div与span之间有什么区别HTML中div与span的区别(共同点与不同点)html的基本使用包括链接、样式表、span和div等等区别div和span、relative和absolute、display和visibilityHTML中div和span比较_动力节点Java学院整理
- 设置层的漂移的简单实现方法CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- 浅谈CSS块级元素与行内元素(内联元素)的区别和联系 CSS块级元素与行级元素详解 如何理解 CSS 布局和块级格式上下文
- CSS 实现垂直居中的几种方法(必看)CSS水平垂直居中的几种方法总结css让容器水平垂直居中的7种方式利用CSS3的flexbox实现水平垂直居中与三列等高布局CSS设置文字图片垂直居中的方法总结深入理解CSS行高line-height与文本垂直居中的原理Flexbox制作CSS布局实现水平垂直居中的简单实例CSS设置DIV垂直居中的N种方法 兼容IE浏览器 CSS文本和div垂直居中方法总结 CSS在固定宽高的div内实现垂直居中的实例详解CSS实现垂直居中的几种方法小结