博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BFC和清除浮动
阅读量:6967 次
发布时间:2019-06-27

本文共 1329 字,大约阅读时间需要 4 分钟。

BFC:

特性
  1. 块级格式化上下文会阻止外边距叠加
    当两个相邻的块框在同一个块级格式化上下文中时,它们之间垂直方向的外边距会发生叠加。换句话说,如果这两个相邻的块框不属于同一个块级格式化上下文,那么它们的外边距就不会叠加。
  2. 块级格式化上下文不会重叠浮动元素
    根据规定,一个块级格式化上下文的边框不能和它里面的元素的外边距重叠。这就意味着浏览器将会给块级格式化上下文创建隐式的外边距来阻止它和浮动元素的外边距叠加。由于这个原因,当给一个挨着浮动的块级格式化上下文添加负的外边距时将会不起作用。
  3. 块级格式化上下文通常可以包含浮动

通俗地来说:创建了BFC的元素就是一个独立的盒子,里面的子元素不会在布局上影响外面的元素,反之亦然,同时BFC任然属于文档中的普通流。

 
触发条件:
  • <html>根元素
  • float 除了none以外的值

  • overflow 除了visible 以外的值(hidden,auto,scroll )

  • display (table-cell,table-caption,inline-block)

  • position(absolute,fixed)

  • fieldset元素(实验中,不建议使用)

建议采取的BFC特性
.lbf-content {    overflow: hidden;    }
.lbf-content {    display: table-cell;     width: 9999px;}

第二种会让连续英文字符换行,解决方法:

.word-break {    display: table;    width: 100%;    table-layout: fixed; word-break: break-all; } 浮动的缺点:
  • 无法撑起父元素。

  • 同级别的兄弟元素会围绕在周围。
清除浮动常用的几种方式: 简单看看如何形成BFC: (1)float值不为none,可以是left,right或both (2)overflow为hidden或auto或scroll (3)display为inline-block或table-cell或table-caption (4)position为absolute或fixed 我们可以对父容器添加这些属性使其变成BFC,从而达到“清浮动”效果

1、父级div定义伪类:after和zoom

.clearfloat:after{display:block;clear:both;content:"";}
.clearfloat{zoom:1}

2.在结尾处添加空div标签clear:both

添加一个空div,利用css提高的clear:both清除浮动,让父级div能自动获取到高度

3.父级div定义height

父级div手动定义height,就解决了父级div无法自动获取到高度的问题;不推荐使用,只建议高度固定的布局时使用

4.父级div定义overflow:hidden

只推荐没有使用position或对overflow:hidden理解比较深的朋友使用
 

转载于:https://www.cnblogs.com/jeffjoy/p/9382903.html

你可能感兴趣的文章
第七章: ansible故障排查
查看>>
everything is object
查看>>
Android中的设计模式之单例模式
查看>>
webpack核心概念
查看>>
Vue 兼容 ie9 的全面解决方案
查看>>
移动端总结
查看>>
认识Arduino,开始嵌入式之旅
查看>>
深入了解Threadlocal
查看>>
HTTP的请求与响应
查看>>
rsync部署使用
查看>>
算法-java排序实现总结
查看>>
VS Code、ATOM这些开源文本编辑器的代码实现中有哪些奇技淫巧?
查看>>
EditorConfig
查看>>
使用Canvas和JavaScript做一个画板
查看>>
用trait实现简单的依赖注入
查看>>
webpack-从0开始写一个webapck v3 loader
查看>>
vue-cli 引入第三方插件终极法!!
查看>>
springboot项目 docker部署实践
查看>>
js 获取窗口、屏幕、页面元素宽高+位置(兼容ie)
查看>>
汤森路透 Thomson Reuters--使用多模型数据库ArangoDB 打造快速安全的简单视图分析...
查看>>