×

Cách sử dụng flex-shrink - Quản lý kích thước phần tử khi co lại

Trong thiết kế web hiện đại, Flexbox là một công cụ mạnh mẽ để bố trí và sắp xếp các phần tử trong một container. Một trong những thuộc tính quan trọng của Flexbox là flex-shrink, giúp bạn kiểm soát cách các phần tử co lại khi không còn đủ không gian.

Hiểu về thuộc tính flex-shrink

flex-shrink quy định khả năng một phần tử sẽ co lại như thế nào khi không gian bị giới hạn. Giá trị của flex-shrink là một số dương, và mặc định là 1. Nếu bạn đặt flex-shrink0, phần tử sẽ không co lại khi container bị thu nhỏ.

Đặt thuộc tính flex-shrink

Để áp dụng flex-shrink, bạn hãy xác định phần tử con trong một container Flexbox. Ví dụ:

.container {
  display: flex;
}

.item {
  flex-shrink: 1; /* Mặc định */
}

Trong đoạn mã trên, tất cả các phần tử .item sẽ coa lại với tỷ lệ mặc định là 1 khi không gian bị co lại.

So sánh các giá trị của flex-shrink

Nếu bạn muốn các phần tử co lại với tỷ lệ khác nhau, bạn có thể thay đổi giá trị của flex-shrink. Ví dụ:

.item1 {
  flex-shrink: 1;
}

.item2 {
  flex-shrink: 2;
}

.item3 {
  flex-shrink: 0;
}

Trong trường hợp này, .item2 sẽ co lại gấp đôi so với .item1, trong khi .item3 sẽ không co lại.

Kết hợp flex-shrink với các thuộc tính khác

Bạn có thể kết hợp flex-shrink với các thuộc tính Flexbox khác như flex-growflex-basis. Ví dụ:

.container {
  display: flex;
}

.item1 {
  flex: 1 1 200px; /* flex-grow: 1, flex-shrink: 1, flex-basis: 200px */
}

.item2 {
  flex: 2 2 100px; /* flex-grow: 2, flex-shrink: 2, flex-basis: 100px */
}

Ở đây, .item1.item2 đều có khả năng co lại (với flex-shrink là 1 và 2 khác nhau), và cũng có khả năng lớn lên (flex-grow là 1 và 2).

Ứng dụng thực tế

Giả sử bạn có một trang web với một trình đơn điều hướng bên trái và nội dung chính. Bạn muốn trình đơn này sẽ không co lại, giúp nội dung chính co lại nhiều hơn khi cửa sổ trình duyệt bị thu nhỏ:

.container {
  display: flex;
}

.nav {
  flex-shrink: 0; /* Không co lại */
  width: 200px;
}

.content {
  flex-shrink: 1; /* Sẽ co lại */
  width: 100%;
}

Trong ví dụ này, khi màn hình bị thu nhỏ, trình đơn điều hướng sẽ giữ nguyên kích thước của nó, trong khi phần nội dung chính sẽ co lại.

Kết luận

Hiểu và sử dụng flex-shrink một cách hiệu quả sẽ giúp bạn duy trì bố cục trang web một cách linh hoạt hơn, đặc biệt khi hiển thị trên các thiết bị khác nhau. Bằng cách kiểm soát khả năng các phần tử co lại, bạn có thể tạo ra các giao diện người dùng đẹp mắt và dễ sử dụng.

Comments