“包含块”的定义
盒的位置和大小有时是根据一个特定矩形计算的,叫做该元素的包含块(containing block)。元素包含块的定义如下:
-
根元素所在的包含块是一个被称为初始包含块(initial containing block)的矩形。初始包含块是视口大小的一个矩形
-
对于其它元素,如果该元素的position是’relative’或者’static’,包含块由其最近的块容器祖先盒的内容边界形成
-
如果元素具有’position: fixed’,包含块由视口(viewport)建立,即初始包含块。
-
如果元素具有’position: absolute’,包含块由最近非的static祖先建立,按照如下方式:
如果该祖先是一个行内元素,包含块就是环绕着为该元素生成的第一个和最后一个行内盒的内边距框的边界框。
若祖先为块元素,则包含块由该祖先的内边距边界形成
如果没有这样的祖先,包含块就是初始包含块
对边界框有疑惑的话,可参考下图