Trình tạo CSS Flexbox

Xây dựng các bố cục Flexbox một cách trực quan · điều chỉnh các thuộc tính của container và các phần tử, xem một bản xem trước trực tiếp, sao chép CSS.

Các thuộc tính container

Xem trước trực tiếp

CSS được tạo

Cách sử dụng

  1. Xác định các thuộc tính của container: cấu hình container flex, flex-direction, justify-content, align-items, flex-wrap và gap.
  2. Thêm và cấu hình các phần tử flex: thêm các phần tử con và xác định flex-grow, flex-shrink, flex-basis, align-self và order riêng lẻ.
  3. Sao chép CSS: lấy CSS đầy đủ cho container và các phần tử, sẵn sàng sử dụng trong dự án của bạn.

Tại sao sử dụng trình tạo Flexbox?

Flexbox là công cụ thiết yếu cho bố cục CSS một chiều, căn chỉnh các phần tử theo dòng hoặc theo cột với các điều khiển phân phối và căn chỉnh mạnh mẽ. Nhưng các thuộc tính rất nhiều và các tương tác của chúng phức tạp: justify-content vs align-items, flex-grow vs flex-basis, trục chính vs trục ngang. Trình tạo tương tác này cung cấp phản hồi trực quan ngay lập tức khi bạn sửa đổi mỗi thuộc tính, làm cho nó trở thành cách nhanh nhất để học Flexbox và có được CSS phù hợp với bố cục của bạn.

Tính năng

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 phối các phần tử dọc theo trục chính (mặc định là ngang). align-items căn chỉnh các phần tử dọc theo trục ngang (mặc định là dọc). Khi flex-direction là column, các trục được hoán đổi, justify-content trở thành dọc và align-items trở thành ngang.

Khi nào sử dụng Flexbox hoặc CSS Grid?

Sử dụng Flexbox cho các bố cục một chiều, một hàng nút, một thanh điều hướng, một danh sách thẻ phải xuống dòng. Sử dụng CSS Grid cho các bố cục hai chiều mà bạn cần kiểm soát các hàng và cột đồng thời, như một bố cục đầy đủ hoặc một lưới thẻ phức tạp.

flex: 1 nghĩa là gì?

flex: 1 là phím tắt cho flex-grow: 1; flex-shrink: 1; flex-basis: 0%. Điều này chỉ định cho phần tử lớn lên để lấp đầy không gian khả dụng, co lại nếu cần, và bắt đầu từ không trước khi phân phối không gian. Tất cả các phần tử với flex: 1 chia sẻ không gian một cách công bằng.

Flexbox thực sự làm gì

Flexbox (Flexible Box Layout) là một mô hình bố cục CSS được thiết kế để phân phối không gian và căn chỉnh các mục theo hướng một chiều: hoặc hàng hoặc cột. Nó giới thiệu hai khái niệm cốt lõi xác định cách mọi thứ hoạt động: trục chính (hướng chính các mục chảy, ngang theo mặc định) và trục chéo (vuông góc với trục chính, dọc theo mặc định). Khi bạn nội tâm hóa chính so với chéo, mọi thuộc tính Flexbox đều ánh xạ tới một trong số chúng: justify-content hoạt động trên trục chính, align-items hoạt động trên trục chéo, flex-direction hoán đổi trục nào là trục nào.

Flexbox đã giải quyết một loạt các vấn đề về bố cục đã làm khổ các nhà phát triển web từ năm 1998 đến 2014. Trước Flexbox, căn giữa một phần tử theo chiều dọc đòi hỏi các hack (display: table-cell, lề âm, position: absolute với biến đổi translate). Các cột có chiều cao bằng nhau đòi hỏi kỹ thuật cột giả với hình ảnh nền. Footer dính cần các tính toán pixel chính xác. Flexbox đã làm cho tất cả những điều này trở nên tầm thường: một khai báo một dòng thay thế hàng thập kỷ của các giải pháp tạm thời CSS. Sự đánh đổi là Flexbox một chiều; đối với các bố cục hai chiều (hàng VÀ cột đồng thời), CSS Grid (phát hành 2017) là công cụ tốt hơn.

Các thuộc tính Flexbox chia gọn gàng thành hai nhóm: thuộc tính container (áp dụng cho cha: display: flex, flex-direction, flex-wrap, justify-content, align-items, align-content, gap) và thuộc tính mục (áp dụng cho con: flex-grow, flex-shrink, flex-basis, align-self, order). Các thuộc tính container kiểm soát các mẫu bố cục; các thuộc tính mục kiểm soát các ngoại lệ riêng lẻ. Trình tạo này hiển thị cả hai bộ để bạn có thể thử nghiệm cách chúng tương tác mà không cần viết mã.

Công cụ này hoạt động bên dưới như thế nào

Bản xem trước trực tiếp là một container flex với các phần tử con mẫu. Khi bạn thay đổi các thuộc tính container (flex-direction, justify-content, v.v.) thông qua các trình đơn thả xuống và đầu vào, JavaScript cập nhật kiểu nội tuyến của container xem trước và trình duyệt render lại bố cục. Bản xem trước là triển khai Flexbox thực tế của trình duyệt, không phải mô phỏng JavaScript: bạn thấy chính xác những gì CSS của bạn sẽ tạo ra trên một trang thực tế.

Các điều khiển từng mục cho phép bạn điều chỉnh từng con một cách riêng lẻ. Bạn có thể thêm hoặc xóa mục, đặt giá trị flex-grow, flex-shrink, flex-basis, align-self và order của chúng, và xem cách container phân phối lại không gian tương ứng. Các chỉ báo trục trực quan hiển thị trục chính và trục chéo cho cấu hình hiện tại, củng cố mô hình tinh thần. Các thuộc tính là CSS thực mà bạn có thể sao chép trực tiếp vào stylesheet của mình, không cần chuyển đổi hoặc các tiền tố framework.

Bảng CSS đã tạo cập nhật với mỗi tương tác, tạo ra hai quy tắc CSS: một cho container (với các thuộc tính flex đã chọn) và một cho các mục. Nhấp Sao chép CSS và các quy tắc được ghi vào clipboard của bạn. Công cụ tự nó không bao giờ tạo yêu cầu mạng; render xem trước, tạo mã và ghi clipboard tất cả đều xảy ra trong JavaScript trên thiết bị của bạn. Tải lại trang và cấu hình của bạn biến mất trừ khi bạn sao chép CSS trước.

Lịch sử ngắn về Flexbox

Quy trình làm việc thực tế

Cạm bẫy phổ biến và ý nghĩa của chúng

Quyền riêng tư: mọi thứ chạy trong trình duyệt của bạn

Các công cụ học và bố cục CSS đến trong hai hương vị: các trang HTML đơn giản chạy JavaScript phía client (riêng tư, nhanh, không thiết lập) và các trình chỉnh sửa đám mây với các dự án được lưu (cộng tác nhưng với sự đánh đổi về quyền riêng tư). Công cụ này thuộc loại đầu tiên. Các lựa chọn thuộc tính của bạn, cấu hình mục của bạn, CSS được tạo của bạn: tất cả đều ở trong phiên trình duyệt của bạn. Tải lại trang và trạng thái biến mất trừ khi bạn sao chép CSS trước.

Cổ phần quyền riêng tư ở đây thấp vì cấu hình Flexbox hiếm khi chứa thông tin nhạy cảm. Tuy nhiên, sự thiếu phân tích quan trọng: bạn có thể thử nghiệm tự do mà không có quá trình thử và sai của bạn được ghi lại. Đặc biệt hữu ích trong các bối cảnh lớp học hoặc đào tạo doanh nghiệp nơi việc học sinh hoặc thực tập sinh đăng ký tài khoản trên các nền tảng bên thứ ba là một điểm ma sát. Công cụ là một trang tĩnh duy nhất không có backend, có thể sử dụng trong bất kỳ trình duyệt nào, bao gồm các máy doanh nghiệp bị khóa.

Khi một công cụ khác là lựa chọn đúng