BFC

17 篇文章 0 订阅

元素定位:

1. 正常文档流,从上向下,行内从左向右

2. 浮动float,在正常的文档流位置显示,根据属性值向左或向右浮动,带来的影响是兄弟元素会在其下面的位置以正常的文档流出现,文字不会被覆盖。

3. 绝对定位 position: absolute; 如果没有设置坐标值(top left right bottom),那么在正常的文档流位置显示,兄弟元素会在其下面显示,文字会被覆盖。


BFC Block Formatting Context 块级格式化上下文

如果一个元素被触发了BFC,那么它内部的元素无论如何布局都不会影响外面的元素,相当于一个独立的与外部隔离的盒子

浮动布局和绝对定位对其他元素的影响:

1️⃣ 父元素高度塌陷


2️⃣ 兄弟遮盖


3️⃣ 外边距合并



触发BFC

① 父元素设置高度值

② 父元素尾部加一个空div,设置clear:both

③ 父元素加一个伪元素 clear{zoom:1} clear::after{content:""; display:block; clear:both;}

④ 父元素也设置为浮动,即float:left | right;

⑤ position: absolute | fixed

⑥ overflow: hidden | auto | scroll(除了visible以外)

⑦ display: inline-block | table-cell | table-caption | flex | inline-flex

hasLayout是什么?

hasLayout可以简单看作是IE5.5/6/7中的BFC(Block Formatting Context)

当hasLayout为true时(就是所谓的"拥有布局"),相当于元素产生新BFC,元素自己对自身内容进行组织和尺寸计算;

默认hasLayout==true的元素

<html>, <body>
<table>, <tr>, <th>, <td>
<img>,<hr>
<input>, <button>, <select>, <textarea>, <fieldset>, <legend>
<iframe>, <embed>, <object>, <applet>,<marquee>

触发haslayout=true的方式有很多,简单的说使用zoom:1就可以了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值