CSS column-width 属性

CSS column-width 语法

在 CSS 中,column-width 属性用于指定每一列的理想宽度,从而让浏览器自动根据可用空间决定要显示多少列。

语法:

column-width: auto | 长度值;

说明:

column-width 的取值有以下 2 种。

  • auto(默认值):列数由 column-count 属性决定。如果没有设置 column-count 且 column-width 为 auto,则内容将显示在单列中。
  • 长度值:可以是像素值(px)、em、rem 等,但不能是百分比,且值必须为正数。

如果只设置了 column-width,浏览器会自动计算列数,以尽可能满足你设定的列宽,同时填满容器。

如果同时设置了 column-width 和 column-count,浏览器会:

  • 以 column-width 为基础确定理想列数。
  • 最多不会超过 column-count 限定的列数。

简单来说就是,column-width 设定了 “希望每列多宽”,而 column-count 则是 “最多显示几列”。当两者结合时,浏览器会尽量用你设定的列宽,前提是列数不超过你设定的最大值。

此外,使用 column-width 更适合响应式场景。浏览器可以根据屏幕大小自动调整列数,以提供最佳的阅读体验。例如:

.content {
    column-width: 250px;
    column-gap: 20px;
}

上面代码表示 “每列大约 250 像素宽”,如果容器够宽,就显示多列,空间不够时自动减少列数,非常适合自适应设计。

CSS column-width 摘要

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

CSS column-width 示例

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

示例:column-width 基本用法

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

页面效果如下图所示。

column-width 示例

分析:

width: 400px; 限定了 body 宽度为 400px,然后我们使用 column-width: 250px; 定义列宽,这样 body 就会自动根据容器宽度、每列宽度、内容多少这三者来计算列数。小伙伴们可以试着改变 column-width 属性取值,然后看看实际效果如何。

columns 是一个复合属性

columns 其实是一个复合属性,它有 2 个子属性(如下表所示)。

columns 的子属性
子属性 说明
column-count 定义多列布局的列数
column-width 定义多列布局中列宽

上一篇: column-count

下一篇: columns

给站长反馈

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

邮箱:lvyenet@vip.qq.com

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