Cấu trúc và cách dùng thuộc tính flex:1 trong CSS

Thuộc tính flex là một thuộc tính viết tắt kết hợp ba thuộc tính khác nhau:

flex: flex-grow flex-shrink flex-basis;
  • flex-grow: Khả năng mở rộng khi có khoảng trống.
  • flex-shrink: Khả năng thu nhỏ khi không đủ không gian.
  • flex-basis: Kích thước cơ bản ban đầu của phần tử trước khi phân phối không gian.

Phân tích các giá trị phổ biến của flex

Viết tắt Grow Shrink Basis Mục đích sử dụng
flex: 1 1 1 0 Chia đều không gian
flex: auto 1 1 auto Dựa vào nội dung nhưng vẫn co giãn
flex: none 0 0 auto Không thay đổi kích thước
flex: 0 0 200px 0 0 200px Cố định chiều rộng
flex: 2 2 1 0 Chiếm gấp đôi không gian
flex: 1 0 auto 1 0 auto Cho phép mở rộng nhưng không thu hẹp

Chi tiết từng thành phần

1. flex-grow (Mở rộng)

Xác định khả năng mở rộng của phần tử khi container còn dư không gian.

flex-grow: 1; /* Chiếm 1 phần */
flex-grow: 2; /* Chiếm 2 phần */
flex-grow: 0; /* Không mở rộng */

2. flex-shrink (Co lại)

Kiểm soát việc phần tử có bị thu nhỏ hay không khi tổng kích thước vượt quá container.

flex-shrink: 1; /* Cho phép thu nhỏ */
flex-shrink: 0; /* Không cho phép thu nhỏ */

3. flex-basis (Kích thước cơ sở)

Định nghĩa kích thước ban đầu của phần tử trước khi áp dụng flex-grow hoặc flex-shrink.

flex-basis: 200px; /* Cố định 200px */
flex-basis: auto;  /* Dựa vào nội dung */
flex-basis: 0;     /* Không có kích thước ban đầu */

Các mẫu viết tắt thường gặp

flex: 1

flex: 1 1 0;
  • Tăng/giảm đều được
  • Kích thước khởi tạo bằng 0 → chia đều không gian

flex: none

flex: 0 0 auto;
  • Không tăng, không giảm
  • Kích thước dựa trên nội dung

flex: auto

flex: 1 1 auto;
  • Vừa có thể tăng, vừa có thể giảm
  • Bắt đầu từ kích thước nội dung

Giữ nguyên độ rộng cố định kèm xuống dòng

flex: 0 0 200px;
  • Mỗi mục chiếm đúng 200px
  • Nếu không đủ chỗ sẽ tự động xuống dòng

Thẻ: css flexbox layout Web Development

Đăng vào ngày 8 tháng 10 lúc 02:45