Trình tạo CSS đa cột

Tạo các bố cục đa cột kiểu báo với xem trước trực tiếp. Điều chỉnh số cột, khoảng cách, kiểu và độ rộng đường thẳng.

Xem trước
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
Mã CSS

    

CSS Multi-Column Layout Là Gì

CSS Multi-column Layout (đặc tả W3C "CSS Multi-column Layout Module Level 1") tự động chảy lại nội dung của một phần tử duy nhất qua hai hoặc nhiều cột: cùng cách ngành in báo và tạp chí đã xử lý văn bản dài trong nhiều thế kỷ. Bạn khai báo bao nhiêu cột bạn muốn (hoặc mỗi cột nên rộng bao nhiêu), và trình duyệt phân phối nội dung từ trên xuống dưới, trái sang phải, cân bằng số dòng để mỗi cột kết thúc ở chiều cao gần như giống nhau. Module này trở thành W3C Candidate Recommendation vào tháng 4 năm 2011 và được phát hành dưới dạng có thể sử dụng trên các trình duyệt giữa Firefox 3.5 (tháng 6/2009) và IE 10 (tháng 10/2012). Nó đã là một tính năng nền tảng web cơ bản trong hơn một thập kỷ. Không giống như Flexbox hay Grid: căn chỉnh các phần tử con riêng biệt vào các vị trí đã biết: bố cục multi-column coi nội dung là một dòng chảy liên tục duy nhất mà trình duyệt cắt thành các cột dựa trên chiều cao có sẵn.

Khi CSS Columns Là Công Cụ Phù Hợp

column-count vs column-width: Sự Phân Biệt Quan Trọng Nhất

Hai cách để chỉ định cột, và lựa chọn quan trọng cho thiết kế responsive. column-count: 3 hard-code ba cột: tại bất kỳ chiều rộng viewport nào, trình duyệt tạo ra chính xác ba cột, trở nên hẹp hơn khi container thu hẹp. Trên điện thoại, ba cột trở thành các sliver mỏng không đọc được. column-width: 250px thay vào đó yêu cầu các cột "rộng ít nhất 250 pixel"; trình duyệt tính toán có bao nhiêu phù hợp trong container và chảy lại tự động khi viewport thay đổi. Màn hình rộng có nhiều cột, màn hình hẹp có ít hoặc một: không có một media query duy nhất. Mẫu kết hợp là thực hành tốt nhất hiện đại: columns: 250px 4 (viết tắt cho column-width cộng column-count) có nghĩa là "các cột rộng 250px, nhưng không bao giờ nhiều hơn 4." Trình duyệt tạo ra 4 cột trên desktop rộng, ít hơn trên tablet, một trên điện thoại: tự động responsive. Hầu hết CSS sản xuất sử dụng dạng kết hợp này vì lợi ích về khả năng phục hồi.

Kiểm Soát Nơi Nội Dung Ngắt

Theo mặc định, trình duyệt ngắt cột ở bất cứ nơi nào nó hạ cánh: đôi khi tách một tiêu đề khỏi đoạn đầu tiên của nó, hoặc cắt một thẻ làm đôi. Thuộc tính CSS break-inside: avoid (CSS Fragmentation Module Level 3) yêu cầu trình duyệt "không tách phần tử này qua các cột": thường được áp dụng cho các thẻ, hình, và bất kỳ nội dung nào nên ở cùng nhau. break-before: column buộc một ngắt cột trước một phần tử, hữu ích cho "bắt đầu mỗi phần trong một cột mới." column-span: all làm cho một tiêu đề hoặc callout trải dài toàn bộ chiều rộng qua tất cả các cột, thoát khỏi luồng cột: điển hình cho tiêu đề bài viết phía trên một thân multi-column.

Bẫy Cần Lưu Ý

Bố cục multi-column có các tương tác tinh tế đáng biết. Thứ tự đọc trên các trình đọc màn hình tuân theo thứ tự DOM, thường giống với thứ tự cột từ trên xuống dưới trực quan: nhưng công nghệ hỗ trợ đôi khi có thể bị nhầm lẫn trên các bố cục phức tạp. Phân trang in với multi-column có thể tạo ra cân bằng cột kỳ lạ qua các page break; kiểm thử với stylesheet in nếu bạn quan tâm đến đầu ra in. Nội dung dài lấp đầy xuống dưới: nếu bạn cho một container multi-column chiều cao cố định ngắn hơn nội dung cần, nội dung sẽ tràn; nếu bạn không hạn chế chiều cao, trình duyệt cân bằng các cột về chiều dài gần như bằng nhau. Nội dung được neo (form, các phần tử tương tác cần ở yên một chỗ) hoạt động kém trong các cột vì người dùng không thể biết phải nhìn ở đâu. Trộn với Grid hoặc Flexbox ở cùng cấp độ tạo ra kết quả không thể đoán trước: chọn một phương pháp bố cục cho mỗi container.

Các thuộc tính CSS được tạo

Công cụ liên quan

Trình tạo lưới CSS Bộ trực quan hóa mô hình hộp CSS Trình tạo CSS Flexbox Trình tạo CSS Clip-Path