CSS column-fill 属性

CSS column-fill 语法

在 CSS 中,column-fill 属性用于定义多列布局中各列内容的填充方式。

语法:

column-fill: balance | auto;

说明:

column-fill 的取值有 2 种,如下表所示。

column-fill 属性取值
取值 说明
balance(默认值) 各列内容均衡填充
auto 各列内容自动填充

如果容器没有设置固定的高度(即高度是 auto),那么:

  • column-fill: balance;:依然有效,浏览器会自动计算合适的高度,让各列尽量平衡。
  • column-fill: auto;:会失效(表现为所有内容都在第一列)。因为没有高度限制,第一列会无限延伸直到包含所有内容。

也就是说,如果想要使用 column-fill: auto,我们必须给容器设置一个固定的高度(或 max-height)。

注意:

  • column-fill 属性只会作用于多列布局容器(即 column-countcolumn-width 定义的元素)。
  • column-fill 主要影响当内容量不足以完全填充所有列时,或内容量刚好能填充多列但需要平衡分配时的行为。

CSS column-fill 摘要

属于 CSS 多列布局
使用频率
是否继承
默认值 balance
兼容性 查看
官方文档 查看
MDN 查看

CSS column-fill 示例

接下来,我们通过一个简单的例子来讲解一下 column-fill 属性是如何使用的。

示例:column-fill 基本用法

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        body {
            width: 400px;
            height: 500px;
            padding: 10px;
            border: 1px solid silver;
            column-count: 3;
            column-fill: auto;
        }
    </style>
</head>
<body>
    <h1>匆匆</h1>
    <p>燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时 候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢——如今又到了哪里呢?</p>
    <p>……</p>
    <p>在逃去如飞的日子里,在千门万户的世界里的我能做些什么呢?只有徘徊罢了,只有匆匆罢了;在八千多日的匆匆里,除徘徊外,又剩些什么呢?过去的日子如轻烟,被微风吹散了,如薄雾,被初阳蒸融了;我留着些什么痕迹呢?我何曾留着像游丝样的痕迹呢?我赤裸裸来到这世界,转眼间也将赤裸裸地回去罢?但不能平的,为什么偏要白白走这一遭啊?</p>
    <p>你聪明的,告诉我,我们的日子为什么一去不复返呢?</p>
</body>
</html>

页面效果如下图所示。

column-fill 示例

分析:

如果改为 column-fill: balance;,此时页面效果如下图所示。

column-fill: balance;

从上面可以看出,对于 column-fill: auto; 来说,如果存在多列,则会从左到右填充满列,这样会导致最后一列可能会存在空白。

而对于 column-fill: balance; 来说,如果存在多列,则会将所有内容平均分配给所有的列,这样可能会导致所有列的底部存在空白。

上一篇: column-span

下一篇: column-rule-width

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号