columns
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
Thuộc tính viết tắt CSS columns đặt số cột tối đa khi hiển thị nội dung của phần tử, cùng với chiều rộng tối thiểu và chiều cao tối đa của các cột trong phần tử đó.
Try it
columns: 2;
columns: 6rem auto;
columns: 12em;
columns: 3;
<section id="default-example">
<p id="example-element">
London. Michaelmas term lately over, and the Lord Chancellor sitting in
Lincoln's Inn Hall. Implacable November weather. As much mud in the streets
as if the waters had but newly retired from the face of the earth, and it
would not be wonderful to meet a Megalosaurus, forty feet long or so,
waddling like an elephantine lizard up Holborn Hill.
</p>
</section>
#example-element {
min-width: 21rem;
text-align: left;
}
Thuộc tính thành phần
Thuộc tính này là viết tắt của các thuộc tính CSS sau:
Cú pháp
/* Chiều rộng cột */
columns: 18em;
/* Số cột */
columns: auto;
columns: 2;
/* Chiều rộng và số cột */
columns: 2 auto;
columns: auto 12em;
columns: auto auto;
/* Chiều rộng và/hoặc số cột, và chiều cao cột */
columns: 18em / 10em;
columns: 2 / 90vh;
columns: 2 auto / 300px;
/* Giá trị toàn cục */
columns: inherit;
columns: initial;
columns: revert;
columns: revert-layer;
columns: unset;
Giá trị của thuộc tính columns có thể được chỉ định dưới dạng giá trị <column-count> và/hoặc <column-width>, theo bất kỳ thứ tự nào, tùy chọn theo sau là giá trị <column-height> đứng sau dấu gạch chéo (/).
Giá trị
<'column-width'>-
Chiều rộng cột lý tưởng, được định nghĩa là
<length>hoặc từ khóaauto. Chiều rộng thực tế có thể rộng hơn hoặc hẹp hơn để phù hợp với không gian có sẵn. Xemcolumn-width. <'column-count'>-
Số cột lý tưởng để phân bố nội dung của phần tử, được định nghĩa là
<integer>hoặc từ khóaauto. Nếu được chỉ định là<integer>, nó xác định số cột tối đa cho phép. Xemcolumn-count. <'column-height'>-
Chiều cao của các cột, được định nghĩa là
<length>hoặc từ khóaauto. Xemcolumn-height.
Note:
Đặt giá trị <column-height> sẽ đặt lại thuộc tính column-wrap về giá trị ban đầu của nó là auto. Khi <column-height> được đặt thành <length>, giá trị auto của column-wrap được hiểu là wrap. Khi <column-height> được đặt thành auto, nó được hiểu là nowrap.
Định nghĩa hình thức
| Initial value | as each of the properties of the shorthand:
|
|---|---|
| Applies to | Block containers except table wrapper boxes |
| Inherited | no |
| Computed value | as each of the properties of the shorthand:
|
| Animation type | as each of the properties of the shorthand:
|
Cú pháp hình thức
columns =
[ <'column-width'> || <'column-count'> ] [ / <'column-height'> ]?
<column-width> =
auto |
<length [0,∞]> |
min-content |
max-content |
fit-content( <length-percentage> )
<column-count> =
auto |
<integer [1,∞]>
<column-height> =
auto |
<length [0,∞]>
<length-percentage> =
<length> |
<percentage>
<integer> =
<number-token>
Ví dụ
>Đặt ba cột bằng nhau
Ví dụ này cho thấy cách chia vùng chứa văn bản thành ba cột bằng nhau.
HTML
Chúng ta dùng một phần tử <p> cơ bản chứa nội dung văn bản.
<p class="content-box">
This is a bunch of text split into three columns using the CSS
<code>columns</code>
property. The text is equally distributed over the columns.
</p>
CSS
Chúng ta đặt giá trị thuộc tính columns cho đoạn văn bao gồm giá trị <column-count> là 3 và giá trị <column-width> là auto.
.content-box {
columns: 3 auto;
}
Kết quả
Lưu ý cách văn bản được chia thành ba cột.
Tạo các cột có chiều cao cố định xuống dòng
Ví dụ này minh họa việc bao gồm giá trị <column-height> với thuộc tính viết tắt columns để chia vùng chứa văn bản thành các cột có chiều cao cố định và tự động xuống hàng mới khi chạm đến cạnh ngang của vùng chứa.
HTML
Chúng ta dùng một phần tử <p> cơ bản với một số văn bản.
<p class="content-box">
This is a bunch of text split into three columns using the CSS
<code>columns</code> property. This includes a <code>column-count</code> value
of <code>3</code>, a <code>column-width</code> value of <code>auto</code>, and
a <code>column-height</code> value of <code>5em</code>. The
<code>column-wrap</code> value is set to its initial value, <code>auto</code>;
when a <code>column-height</code> value is included,
<code>column-wrap: auto</code> resolves to <code>wrap</code>, which allows the
columns to wrap onto multiple rows. The text is equally distributed over the
columns, and placed into multiple rows.
</p>
CSS
Chúng ta đặt giá trị thuộc tính columns cho đoạn văn bao gồm giá trị <column-count> là 3, giá trị <column-width> là auto, và giá trị <column-height> là 5em. Vì <column-height> được đặt thành <length>, giá trị column-wrap của đoạn văn được tính toán thành wrap, cho phép các cột xuống nhiều hàng.
.content-box {
columns: 3 auto / 5em;
}
Kết quả
Lưu ý cách văn bản được chia thành ba cột. Mỗi cột cao 5em. Sau mỗi ba cột, các cột xuống hàng mới theo chiều dọc (block direction).
Thông số kỹ thuật
| Specification |
|---|
| CSS Multi-column Layout Module Level 2> # propdef-columns> |