Trình tạo Flexbox

Thiết lập khung chứa flex và các phần tử con bằng các điều khiển trực quan, quan sát bố cục phản hồi trực tiếp và sao chép mã CSS chỉ với một cú nhấp chuột.

Mẫu sẵn có
Khung chứa (Container)
Hướng (Direction)
Xuống dòng (Wrap)
Căn chỉnh trục chính (Justify content)
Căn chỉnh phần tử (Align items)
Các phần tử
Phần tử 1
Tự căn chỉnh (Align self)
CSS
Điều chỉnh khung chứa và các phần tử để định hình bố cục của bạn.

Bố cục của bạn được xây dựng trực tiếp trong trình duyệt. Không có dữ liệu nào bạn thiết lập được tải lên BroBroGo.

Hỏi đáp

Sự khác biệt giữa justify-content và align-items là gì?

Justify-content phân bổ khoảng cách các phần tử dọc theo trục chính (main axis) — hướng mà hàng hoặc cột chảy — trong khi align-items định vị chúng dọc theo trục phụ (cross axis). Khi bạn chuyển hướng từ hàng (row) sang cột (column), hai trục này sẽ hoán đổi cho nhau, do đó justify-content bắt đầu hoạt động từ trên xuống dưới và align-items hoạt động từ trái sang phải.

Các điều khiển cho từng phần tử hoạt động như thế nào?

Chọn một phần tử theo số thứ tự của nó, sau đó thiết lập mức độ giãn ra (grow) để lấp đầy không gian trống, mức độ co lại (shrink) khi không gian bị thu hẹp, kích thước ban đầu (basis) và căn chỉnh trục phụ của riêng nó (align-self). Thuộc tính order giúp di chuyển phần tử lên trước hoặc ra sau trên màn hình mà không cần chạm vào mã HTML. Chỉ những phần tử bạn thực sự thay đổi mới nhận quy tắc riêng trong mã CSS.

Khi nào thuộc tính wrap và align-content mới thực sự quan trọng?

Khi tắt chế độ xuống dòng (wrap), mọi phần tử bị buộc phải nằm trên một dòng duy nhất và có thể bị bóp hẹp lại. Khi bật lên, các phần tử không còn đủ chỗ sẽ tự động rơi xuống dòng tiếp theo — đó là lúc align-content phát huy tác dụng, phân bổ khoảng cách cho các dòng dưới dạng một nhóm. Gap thiết lập khoảng cách giữa các phần tử và giữa các dòng mà không cần dùng margin.

Thiết lập bố cục trực quan với Trình tạo Flexbox

CSS Flexbox là một phương thức bố cục mạnh mẽ giúp sắp xếp các phần tử trong một khung chứa một cách linh hoạt, ngay cả khi kích thước của chúng chưa được xác định hoặc có thể thay đổi động. Công cụ Trình tạo Flexbox giúp đơn giản hóa quá trình thiết kế này bằng cách cung cấp giao diện trực quan để cấu hình khung chứa và các phần tử con, hiển thị kết quả phản hồi trực tiếp và xuất mã CSS chuẩn xác.

Toàn bộ quá trình xử lý và xây dựng bố cục được thực hiện trực tiếp trong trình duyệt của người dùng. Không có bất kỳ dữ liệu thiết lập nào được tải lên hệ thống máy chủ, đảm bảo tính riêng tư cho cấu trúc thiết kế của bạn.


Các thuộc tính điều khiển Khung chứa (Container)

Khung chứa flex (flex container) thiết lập môi trường bố cục cho các phần tử con bên trong. Trình tạo Flexbox cung cấp các tùy chọn cấu hình toàn diện cho khung chứa bao gồm:

  • Hướng (Direction): Xác định trục chính của bố cục. Các tùy chọn bao gồm Hàng (Row), Hàng đảo ngược, Cột (Column), và Cột đảo ngược. Việc thay đổi hướng sẽ hoán đổi vai trò của trục chính và trục phụ, ảnh hưởng trực tiếp đến cách hoạt động của các thuộc tính căn chỉnh.
  • Xuống dòng (Wrap): Kiểm soát việc các phần tử có được phép xuống dòng hay không. Bạn có thể chọn Không xuống dòng, Xuống dòng, hoặc Xuống dòng đảo ngược. Khi chọn Không xuống dòng, tất cả phần tử bị ép phải nằm trên một dòng duy nhất. Khi chọn Xuống dòng, các phần tử không đủ chỗ hiển thị sẽ tự động chuyển sang dòng mới.
  • Căn chỉnh trục chính (Justify content): Định vị các phần tử dọc theo trục chính. Các giá trị hỗ trợ gồm Đầu, Cuối, Căn giữa, Phân bổ khoảng giữa (Space between), Phân bổ đều xung quanh (Space around), và Chia đều khoảng cách (Space evenly).
  • Căn chỉnh phần tử (Align items): Định vị các phần tử dọc theo trục phụ. Các tùy chọn bao gồm Đầu, Cuối, Căn giữa, Kéo giãn, và Đường cơ sở (Baseline).
  • Căn chỉnh nội dung (Align content): Chỉ hoạt động khi chế độ Xuống dòng được kích hoạt và có nhiều dòng phần tử xuất hiện. Thuộc tính này phân bổ khoảng cách giữa các dòng dưới dạng một nhóm với các tùy chọn: Đầu, Cuối, Căn giữa, Kéo giãn, Phân bổ khoảng giữa (Space between), Phân bổ đều xung quanh (Space around), và Chia đều khoảng cách (Space evenly).
  • Khoảng cách (Gap): Nhập một giá trị số để thiết lập khoảng cách đồng đều giữa các phần tử và giữa các dòng mà không cần sử dụng thuộc tính margin.

Các thuộc tính điều khiển Các phần tử con

Bên cạnh việc cấu hình khung chứa chung, bạn có thể tinh chỉnh từng phần tử con riêng biệt để tạo ra các bố cục phức tạp và có khả năng thích ứng cao. Khi bạn nhấp vào nút Thêm phần tử, một phần tử mới (ví dụ: "Item 5") sẽ xuất hiện trong danh sách.

Mỗi phần tử con sở hữu các thuộc tính riêng biệt sau:

Thuộc tính Mô tả Giá trị đầu vào
Thứ tự (Order) Thay đổi vị trí hiển thị của phần tử trên màn hình mà không làm thay đổi cấu trúc mã HTML. Giá trị số
Độ giãn (Grow) Xác định khả năng giãn rộng của phần tử để lấp đầy khoảng trống còn lại trong khung chứa. Giá trị số
Độ co (Shrink) Xác định khả năng co lại của phần tử khi không gian của khung chứa bị thu hẹp. Giá trị số
Kích thước cơ sở (Basis) Thiết lập kích thước ban đầu của phần tử trước khi các thuộc tính giãn hoặc co được áp dụng. Giá trị số hoặc Tự động (Auto basis)
Tự căn chỉnh (Align self) Cho phép một phần tử đơn lẻ ghi đè lại thiết lập căn chỉnh trục phụ chung của khung chứa. Tự động, Đầu, Cuối, Căn giữa, Kéo giãn, Đường cơ sở (Baseline)

Để tối ưu hóa mã nguồn, trình tạo chỉ xuất các quy tắc CSS riêng cho những phần tử nào có sự thay đổi thuộc tính so với giá trị mặc định.


Các mẫu bố cục Flexbox phổ biến

Trình tạo Flexbox tích hợp sẵn các mẫu thiết lập nhanh cho các cấu trúc giao diện web thông dụng:

  1. Căn giữa: Định vị một phần tử hoàn hảo ở chính giữa khung chứa theo cả hai chiều dọc và ngang.
  2. Thanh điều hướng: Sắp xếp các liên kết điều hướng dàn đều theo chiều ngang, thường sử dụng phân bổ khoảng cách để đẩy logo và các menu về hai phía.
  3. Xếp chồng (Stack): Sắp xếp các phần tử theo chiều dọc (Cột) với khoảng cách đồng đều, lý tưởng cho các biểu mẫu hoặc danh sách.
  4. Dạng thẻ (Cards): Bố cục lưới linh hoạt cho các thẻ nội dung, tự động xuống dòng khi kích thước màn hình thay đổi.
  5. Thanh bên (Sidebar): Thiết lập bố cục gồm một cột nội dung chính rộng và một cột thanh bên có kích thước cố định hoặc co giãn theo tỷ lệ.

Quy trình xuất mã CSS

Khi bạn thao tác trên các thanh điều khiển trực quan, khung xem trước sẽ cập nhật ngay lập tức để phản hồi các thay đổi. Sau khi đạt được bố cục mong muốn, bạn có thể sao chép mã nguồn được tạo ra tại khu vực CSS.

Khi nhấp vào nút Sao chép CSS, trạng thái của nút sẽ chuyển thành "Copied" để xác nhận mã đã được lưu vào bộ nhớ tạm của bạn. Đoạn mã này bao gồm các thuộc tính của khung chứa và chỉ các phần tử con có thuộc tính tùy chỉnh mới được liệt kê riêng biệt.


Câu hỏi thường gặp

Sự khác biệt giữa justify-content và align-items là gì?

Justify-content phân bổ khoảng cách các phần tử dọc theo trục chính (main axis) — hướng mà hàng hoặc cột chảy — trong khi align-items định vị chúng dọc theo trục phụ (cross axis). Khi bạn chuyển hướng từ hàng (row) sang cột (column), hai trục này sẽ hoán đổi cho nhau, do đó justify-content bắt đầu hoạt động từ trên xuống dưới và align-items hoạt động từ trái sang phải.

Các điều khiển cho từng phần tử hoạt động như thế nào?

Chọn một phần tử theo số thứ tự của nó, sau đó thiết lập mức độ giãn ra (grow) để lấp đầy không gian trống, mức độ co lại (shrink) khi không gian bị thu hẹp, kích thước ban đầu (basis) và căn chỉnh trục phụ của riêng nó (align-self). Thuộc tính order giúp di chuyển phần tử lên trước hoặc ra sau trên màn hình mà không cần chạm vào mã HTML. Chỉ những phần tử bạn thực sự thay đổi mới nhận quy tắc riêng trong mã CSS.

Khi nào thuộc tính wrap và align-content mới thực sự quan trọng?

Khi tắt chế độ xuống dòng (wrap), mọi phần tử bị buộc phải nằm trên một dòng duy nhất và có thể bị bóp hẹp lại. Khi bật lên, các phần tử không còn đủ chỗ sẽ tự động rơi xuống dòng tiếp theo — đó là lúc align-content phát huy tác dụng, phân bổ khoảng cách cho các dòng dưới dạng một nhóm. Gap thiết lập khoảng cách giữa các phần tử và giữa các dòng mà không cần dùng margin.