资讯专栏INFORMATION COLUMN

如何使用BFC清除CSS浮动以及解决margin合并的问题

sf_wangchong / 1395人阅读

摘要:它是页面中的一块渲染区域,并且有一套自己的渲染规则,规定了内部子元素如何定位,以及与其他元素的关系和相互作用。即使浮动也是如此。解决方案,根据规则第六条。防止垂直叠加内部相邻的元素的会叠加。根据规则第五条,将其中一个设置为即可。

1、CSS 最基本的布局单位

Box 是 CSS 布局的对象和基本单位。
元素的类型和display的属性决定了Box的类型。

2、BFC

BFC(Box Formatting Context)是一个独立的渲染区域,规定内部的元素如何布局,并且与外部的元素无关。
Formatting context 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套自己的渲染规则,规定了内部子元素如何定位,以及与其他元素的关系和相互作用。

3、BFC的布局规则

内部的Box会在垂直方向上一个接着一个放置。
Box垂直方向的距离由 margin 决定。属于同一个BFC中的两个相邻的Box上下margin会发生叠加。
每个元素的margin box 的左边,与包含块border box 的左边相接触。即使浮动也是如此。
BFC 的区域不会与float box 重叠。
BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响外面的元素,反之也如此。
计算BFC的高度时,浮动元素也参与计算。

4、哪些元素会生成BFC?

根元素;
float 属性不为 none;

position 为 absolute 或 fixed;

display 为 inline-block,table-cell,table-caption,flex,inline-flex;

overflow 不为 visible; 

5、BFC的作用及原理

  自适应两栏布局:左边定宽高,右边自适应。
    左侧浮动,然后左右重叠,根据BFC的规则第三、四条,设置右侧的元素为BFC。

  清除内部浮动:
    一个元素里面,有两个浮动的元素,父元素的高度默认是不计算浮动元素的高度。
    解决方案,根据BFC规则第六条。

  防止垂直margin叠加:
    BFC内部相邻的元素的margin会叠加。
    根据BFC规则第五条,将其中一个设置为BFC即可。

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/117214.html

相关文章

  • css浮动BFC、定位问题

    摘要:元素框从文档流完全删除,并相对于其包含块定位。产生折叠的必备条件必须是邻接的而根据规范,两个是邻接的必须满足以下条件必须是处于常规文档流非和绝对定位的块级盒子并且处于同一个当中。 1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 何谓浮动元素?有什么特征?所谓浮动元素,即是设置了浮动属性的元素。其特征为: 1.浮动的框可以向左或者向右移动,直到它的外...

    Tony 评论0 收藏0
  • margin合并、塌陷,清除浮动

    摘要:合并的外边距的高度等于两个发生合并的外边距的高度中的较大者。那我们怎么办,回到主题清除浮动。你可能忘了伪元素是行内元素,只有块元素才能清除浮动。所以我们最好后,主动清除一下浮动,避免以后遇到很奇怪的问题。 这是我的第一篇掘金文章,希望大家不要嫌弃。我还是一名在校大学生,就是想把自己所学到的知识写出来,加深自己的印象,记录自己成长的过程,这篇文章主要是介绍HTML 、 CSS 的一些小知...

    Alliot 评论0 收藏0
  • margin合并、塌陷,清除浮动

    摘要:合并的外边距的高度等于两个发生合并的外边距的高度中的较大者。那我们怎么办,回到主题清除浮动。你可能忘了伪元素是行内元素,只有块元素才能清除浮动。所以我们最好后,主动清除一下浮动,避免以后遇到很奇怪的问题。 这是我的第一篇掘金文章,希望大家不要嫌弃。我还是一名在校大学生,就是想把自己所学到的知识写出来,加深自己的印象,记录自己成长的过程,这篇文章主要是介绍HTML 、 CSS 的一些小知...

    MadPecker 评论0 收藏0
  • 理解 BFC (Block Formatting Model)

    摘要:是指块级元素,就是会强制换行的元素,比如。将元素推向左侧。请根据不同的实际情况,选择最合适的方式。再次重申一下,是为子元素创建定位环境。,由于浮动元素占据了一定的宽度,新创建的会因此而变窄。这里只是为了更好地去理解而做一个例子。 什么是 BFC W3C 为浏览器规定了三种定位模型:Normal Flow, 浮动, 和绝对定位。本文所介绍的 BFC (Block Formatting M...

    Tonny 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<