包含块

包含块(Containing Block)
某个元素的尺寸和位置的计算往往是由该元素所在的包含块决定的,包含块不会特指某个元素区域,而是一块视觉假想出来的一块区域,理解了他就可以方便的为元素进行定位。
那怎么知道一个元素的包含块在哪呢?

  • 初始包含块
    用户代理(比如浏览器)选择根元素作为 containing block(称之为初始 containing block)。当html的子元素没有其他跟亲近的包含块时,会依靠初始包含块进行定位、
    初始包含块的大小?即视口大小,,高度不会随着html的增大而增大。
  • 非绝对定位的元素,其包含块为最近的块级祖先元素盒子的内容边界组成。
    浮动元素也是如此,从内容边界开始。
  • 绝对元素的包含块由最近的 position 不是 static 的祖先建立
    其实这个比较复杂,需要考虑该绝对元素的包含块是内联还是块级元素创建的。内联的情况兼容性比较差,所以一般都避免让内联元素里面去包含块级元素,所以大部分还都是由块级元素创建包含块。
    其containing block 由祖先的border内边界形成。
  • 如果元素有属性 ‘position:fixed’,containing block 由视口建立
    原文作者:Miss____Du
    原文地址: https://www.jianshu.com/p/413f471eeb97
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞