CSS columns
属性用来设置元素的列宽和列数。
column-width: <length unit>
列的宽度。column-count: <number> | auto
指定元素的列数。columns
为column-width
和column-count
的简写形式column-rule-style
指定两列间边框的样式column-rule-width
指定两列间边框的厚度column-rule-color
指定两列间边框的颜色column-rule
为上面三个的简写形式,规定列之间的宽度、样式和颜色。column-gap
控制列之间的距离column-span: none | all
指定元素要跨越多少列column-fill: all | balanced
指定如何填充列
您可以使用 break-before
,break-after
或者 break-inside
来如何控制每一列中的内容显示。
默认情况下,列与内容保持平衡。如果您希望列不平衡,可以使用 column-fill: auto
进行设置。其默认行为为 column-fill: balanced
。
.container {
width: 300px;
margin: 100px auto;
columns: 8;
column-rule: 1px dashed rgb(213, 213, 213);
direction: rtl;
word-wrap: break-word;
text-align: center;
}
我们再来看看两个例子。
<div class="three-col">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos pariatur sunt
consequatur vitae corrupti dolores praesentium sapiente dolorum laudantium
dolor ut natus, cum animi, cumque molestias libero eius nobis! Quod, veniam.
Velit quo quos repudiandae minus est quaerat recusandae maiores impedit labore
asperiores numquam amet, libero in dolorem cupiditate! Repudiandae impedit
corporis sapiente sint velit similique, voluptatum cum nemo est magnam non
ratione aliquam adipisci error perspiciatis voluptas quos dicta voluptatibus
suscipit nam. Ad labore nihil sint quisquam eum corrupti nam. Explicabo,
commodi. Labore molestias reiciendis vitae eos, iste possimus odio, voluptates
quasi nam, voluptate est? Odio architecto doloribus quia.
</div>
CSS 如下:
.three-col {
column-count: 3;
column-gap: 20px;
column-rule: 1px dashed #ccc;
}
.nav {
columns: 100px 4;
column-gap: 0;
column-rule: 1px solid #1a242f;
background: #2c3e50;
}
.nav a {
display: block;
padding: 1em;
border-bottom: 1px solid #1a242f;
color: white;
text-align: center;
text-decoration: none;
}
.nav a:hover {
background: #1a242f;
}
你可以查阅 When And How To Use CSS Multi-Column Layout 以了解更多关于这方面的内容。