# 分栏布局

分栏布局用于同一段内容分为多栏显示的场景,类似于报纸的排版。

与分栏布局相关的 CSS 属性有:

  • columns
  • column-width
  • column-count
  • column-rule
  • column-rule-color
  • column-rule-style
  • column-rule-width
  • column-span
  • column-fill
  • column-gap

# column-count

分栏数目

demo loading

# column-width

指定理想的分栏宽度,实际渲染和指定宽度会有出入。不能是百分比,需要是带有单位长度值。

demo loading

# columns

columns: <column-width> || <column-count>

可以同时指定 column-width 和 column-height. 同时指定后通过计算换算为 columns-count 值,较小值生效。

# column-gap / gap

指定每一栏之间空白大小,可以使用百分比。

demo loading

# column-rule

各分栏中间的线(line drawn),和 border 类似,column-rule 也是三个属性的缩写:

column-rule: <column-rule-width> || <column-rule-style> || <column-rule-color>
demo loading

# column-span

用于分栏布局的子元素,用于指定是否横跨多个栏

demo loading

# column-fill

指定填充分栏内容的行为,取值有:

  • auto 按顺序填充每一列,内容只占它需要的空间
  • balance 默认值。尽可能在列之间平衡内容
  • balance-all 目前来看和 balance 表现一致
demo loading

# break-inside

指定分栏内容发生中断时的行为,在 Web 端主要有效取值有:

  • auto 元素可以中断
  • avoid 元素不能中断
demo loading

# box-decoration-break

指定分栏内容分隔渲染时的边缘,取值有:

  • slice 断开的元素整体渲染,边缘像被割开
  • clone 断开的元素各部分独立渲染
demo loading

多栏布局中该属性在 Chrome 中无法达到预期效果,据说 Chrome 的这个属性对行内元素有效,试了下不太行(Chrome 92)。

demo loading