Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> CSS

CSS Flexbox Layout Module - Tổng quan

Flexbox (Flexible Box Layout Module) là mô-đun bố cục 1 chiều mạnh mẽ của CSS, thiết kế cho việc phân phối không gian và căn chỉnh items trong container, ngay cả khi kích thước không xác định hoặc động.

Khái niệm cốt lõi

  • Flex Container: Phần tử cha có display: flex hoặc inline-flex
  • Flex Items: Các phần tử con trực tiếp của flex container
  • Main Axis: Trục chính (xác định bởi flex-direction)
  • Cross Axis: Trục chéo (vuông góc main axis)

6 Thuộc tính Flex Container

Thuộc tínhChức năngTrục
flex-directionHướng xếp: row, row-reverse, column, column-reverseMain
flex-wrapXuống dòng: nowrap, wrap, wrap-reverseMain
flex-flowShorthand: direction + wrapMain
justify-contentCăn items trên main axisMain
align-itemsCăn items trên cross axis (mỗi dòng)Cross
align-contentCăn các dòng (khi wrap)Cross

6 Thuộc tính Flex Items

Thuộc tínhChức năng
orderThứ tự hiển thị (mặc định 0)
flex-growKhả năng phóng to (mặc định 0)
flex-shrinkKhả năng co lại (mặc định 1)
flex-basisKích thước cơ sở (mặc định auto)
flexShorthand: grow shrink basis
align-selfGhi đè align-items cho 1 item

Ví dụ cơ bản

.container {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.item {
  flex: 1 1 200px; /* grow shrink basis */
}
.item:first-child {
  align-self: flex-start;
}

Khi nào dùng Flexbox vs Grid?

FlexboxCSS Grid
1D layout (hàng HOẶC cột)2D layout (hàng VÀ cột)
Content-first (kích thước theo content)Layout-first (kích thước theo track)
Navbar, card, form, centerPage layout, dashboard, gallery
Items quyết định sizeContainer quyết định tracks

Browser Support

Hỗ trợ hoàn hảo mọi trình duyệt hiện đại. IE10+ (với prefix -ms-). Không cần prefix từ 2016.