CSS 盒模型机制
CSS 盒模型机制
Box Sizing Module
术语
- size: 一个一维或二维的测量,主要是width/height
- inner size: 内尺寸,box里面content-box的尺寸
- outer size: 外尺寸,box里面margin-box的尺寸
- definite size: 确定尺寸,无需执行布局即可确定的尺寸,如长度、文本尺寸、百分比、初始化包含块的大小或者其他公式
- indefinite size: 不确定的尺寸,在无限的可用空间中尺寸也是无限的。
- avaliable space: 可见空间,表示box放置的空间的大小,该大小由其参与的格式化上下文的规则确定。box可用的空间通常是其包含块的度量(如果是确定的)或无穷大(如果是不确定的)。可用空间可以是最小内容约束或最大内容约束,这会迫使放置在其中的box在该约束下布置。
- stretch fit: 拉伸适应,适配给定尺寸的拉伸,在给定的维度上需要减去边距、边框、填充
- fallback size: 某些尺寸算法在无限的情况下不能很好的计算,需要用后备方案inital containing block来替代
Auto Box Sizes
- stretch-fit size
- 在确定尺寸的可见空间里,填充了指定的轴的尺寸
- stretch-fit inline size: 在行级模式下,被称为空间宽度(avaliable width)
- streteh-fit block size
- max-content size
- 在指定的无限可见空间里,box在指定轴上的理想尺寸,在保证不溢出的情况,尽可能的减少未填充空间,围绕其内容装箱的尺寸
- max-content inline size: 被称为preferred width和maixmum cell width
- max-content block size: 在布局后就是内容的块大小
- min-content size
- box可以采用的最小尺寸不会导致溢出,可以通过选择更大的尺寸来避免
- min-content inline size:box可以采用的最窄内联尺寸不会导致内联尺寸溢出,也可以通过选择较大的内联尺寸来避免。
- min-content block size:在块容器、表格、行盒子里,等于max-content block size
- fit-content size
- 如果在给定轴上的可见空间是确定的,就等于clamp(min-content size, stretch-fit size, max-content-size),其他情况等于max-content size
- fit-content inline-size
- fit-content block-size
- intrinsic size
- max-content size或者min-content size,主要由内容大小引起的尺寸
指定Box的尺寸
尺寸属性
-
width:auto min-content max-content fit-content( ) - height:同上
- min-width:同上
- min-height:同上
- max-width:同上
- min-height:同上
尺寸值
- length-percentage:用长度或者百分比来指定尺寸,百分比的计算依赖特定的布局模式
- auto:自动计算尺寸,依赖布局模式
- none:没有限制
- min-content:最小内容的适合长度,仅用于块级
- max-conent:最大内容的适合长度,仅用于块级
- fit-content():指定一个值,如果值在min-content和max-content之间就使用该值,超出后取边界,用于网格布局
box-sizing属性
- content-box:不包含margin、border、padding
- border-box:包含border、padding
column-width属性
- min-content:将最佳列宽指定为多列容器内容的最小内容内联大小。
- max-content:将最佳列宽指定为多列容器内容的最大内容内联大小。
- fit-content(
):min(max-content, max(min-content, ))
Extirnic Size Determination
外在大小调整基于元素的上下文确定大小,而不考虑其内容。
- Percentage Sizing
Intrinsic Size Determination
本质上的大小根据元素的内容确定大小,而不考虑其上下文。
This post is licensed under
CC BY 4.0
by the author.