zoukankan      html  css  js  c++  java
  • 包含块、层叠上下文、BFC

    包含块

      什么是包含块?简单来说,就是决定一个元素大小和定位的元素。一个元素会为它的内部元素创建包含块,但也不能说元素的包含块就是它的父元素:

    1、position:fixed 的元素

      包含块是当前可视窗口

    2、position:absolute 的元素

      包含块是最近的 position属性为非static的祖先元素

    3、静态定位和相对定位 的元素

      包含块是最近的块级祖先元素

    层叠上下文

      跟BFC相似,是可以创建出来的(z-index: Number)

      同一个层叠上下文中,层叠级别由低到高:边框和背景、负z-index、块盒子、浮动盒子、行内盒子、z-index:0、正z-index

      一个元素在Z轴上的堆叠顺序,由『层叠上下文』和『层叠顺序』决定:

        1、同一个层叠上下文,层叠级别大的元素在上

        2、同一个层叠上下文,层叠级别相同,后来居上

        3、不同的层叠上下文,由父级元素层叠上下文决定

    BFC(块级格式上下文)

      创建BFC

      1、float: left、right

      2、positon: absolute、fixed

      3、display: inline-block、table-caption、table-cell   (注:display为float、table、list-item等类型的会参与BFC,不会创建 )

      4、overflow: auto、hidden、scroll

    BFC的特点

      1、在一个BFC内部,盒子会在垂直方向上排列

      2、在一个BFC内部,相邻的margin-bottom和margin-top叠加

      3、在一个BFC内部,每个元素左边紧贴着包含盒子的左边

      4、在一个BFC内部,如果有一个内部元素是一个新的BFC,则新BFC区域不会与float元素的区域重叠

      5、计算一个BFC高度时,内部浮动元素的高度也会参与计算

    BFC用途

      1、避免垂直外边距叠加     不让他们在同一个BFC里

      2、清除浮动   如果一个元素是BFC,计算高度时,内部浮动子元素的高度也得算进去。这就是为什么我们经常用overflow清除浮动的原因

      3、避免文字环绕  创建BFC后,新BFC就不会与float元素区域重叠了

      4、自适应两列布局  同上

  • 相关阅读:
    leetCode 116.Populating Next Right Pointers in Each Node (为节点填充右指针) 解题思路和方法
    最终考过了驾照考试,如今就=驾照下来了
    JSON.parseObject的几种用法
    mybatisplus构造器 condition
    MyBatis中jdbcType=INTEGER、VARCHAR作用
    mybatis动态sql
    数据库表可以没有外键
    msyql的子查询,或者叫嵌套查询
    mysql 的编写顺序和执行顺序
    StringUtils的isBlank()方法
  • 原文地址:https://www.cnblogs.com/redking-fighting/p/6264861.html
Copyright © 2011-2022 走看看