css布局-文档流(Normal Flow)、BFC

一、常规流布局/文档流布局(Normal Flow)(相对于盒子模型讲的)

  • 将窗体自上而下分成一行一行,块级元素从上至下、 行内元素在每行中按从左至右的依次排放元素。

二、脱离文档流

  1. 定义:
    元素脱离常规流之后,将不再在常规流中占据空间,而是处于浮动状态(可以理解为漂浮在常规流的上方)。脱离文档流的元素的定位基于正常的文档流,当一个元素脱离文档流后,依然在常规流中的其他元素将忽略该元素并填补其原先的空间。
  2. 脱离文档流(Normal Flow)的方式
    a.浮动(float)
.border1 div {
    border: 1px solid red;
    background-color: aquamarine;
    height: 50px;
    width: 50px;
    margin-bottom: 50px;
    text-align: center;
    line-height: 50px;
    float: left; //向左浮动
 }

设置浮动,父元素塌陷

设置浮动,父元素塌陷
设置浮动后:
-1.父元素高度塌陷
-2.影响浮动元素后面的元素(后面的元素上浮)
-3.自身宽高,变成内容的宽高(没有设宽高时)
-4.浮动元素不遮盖内容
b.绝对定位 position: absolute

.border1 div {
    border: 1px solid red;
    background-color: aquamarine;
    height: 50px;
    width: 50px;
    margin-bottom: 50px;
    text-align: center;
    line-height: 50px;
    position: absolute;//绝对定位
 }

设置绝对定位

设置绝对定位

c.固定定位 position: fixed
和绝对定位 position: absolute效果一致
-1.父元素高度塌陷
-2.元素重叠,因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置 z-index 属性来控制这些框的堆放次序。
三、文本流(只适用于文本)
四、BFC(Block formatting context): 称为块级格式化上下文,是CSS中的一种渲染机制。它决定了块级元素如何对它的子元素内容进行布局,以及与子元素同级别的兄弟元素的关系和相互作用。
BFC是解决普通文档流的问题:普通文档流的布局规则

1、浮动的元素是不会被父级计算高度
2、非浮动元素会覆盖浮动元素的位置
3、margin会传递给父级
4、两个相邻的元素上下margin会重叠

触发BFC的方式(以下任意一条就可以)

1、float的值不为none
2、overflow的值不为visible
3、display的值为table-cell、table-caption和inline-block之一
4、position的值不为static或者releative中任何一个


参考:
盒模型之BFC与文档流对比(二)
一天搞定CSS:BFC布局与普通文档流布局比较–15

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值