2017-02-11 39 views
8

Vấn đề của tôi là tôi muốn có flexbox với chiều rộng phạm vi biến, và tất cả đều hoạt động tốt, nhưng không phải ở hàng cuối cùng. Tôi muốn cùng một kích thước cho tất cả trẻ em ngay cả khi hàng không đầy đủ của trẻ em (hàng cuối cùng).Nhắm mục tiêu các mục flex trên hàng cuối cùng

#products-list { 
    position:relative; 
    display: flex; 
    flex-flow: row wrap; 
    width:100%; 
} 

#products-list .product { 
    min-width:150px; 
    max-width:250px; 
    margin:10px 10px 20px 10px; 
    flex:1; 
} 

divs flex của tôi có thể co lại cho đến khi 150px và lớn lên để 250px, nhưng tất cả phải có cùng kích thước (và rõ ràng là tôi muốn có một giải pháp CSS, với JS Tôi biết cách này).

Trả lời

14

Thật không may, trong lần lặp lại hiện tại của flexbox (Cấp độ 1), không có cách nào rõ ràng để giải quyết vấn đề căn chỉnh hàng cuối cùng. Đó là một vấn đề phổ biến.

Nó sẽ là hữu ích để có một tài sản flex dọc theo dòng:

  • last-row
  • last-column
  • only-child-in-a-row
  • alone-in-a-column

Vấn đề này không xuất hiện như một ưu tiên cao cho Flexbox Cấp 2:

Mặc dù hành vi này là khó có thể đạt được trong flexbox, nó đơn giản và dễ dàng trong CSS Lưới Layout:

Trong trường hợp lưới không phải là một lựa chọn, đây là một danh sách các câu hỏi tương tự chứa hacks flexbox khác nhau:

+2

Tái tạo tốt! Tôi có thể nói đây là câu trả lời ** meta ** ... – vals

+3

Câu trả lời này có cùng vấn đề với sách trong những ngày này: quá nhiều thông tin => không ai đọc nó. Sẽ có được tốt đẹp để có một TL; DR; phần (sửa nhanh). –

+0

@AndreiGheorghiu, tôi biết không có sửa chữa nhanh chóng cho vấn đề này. Trong thực tế, vấn đề chính nó thay đổi trong tự nhiên. Nếu bạn có một giải pháp phổ quát, bạn nên đăng câu trả lời. –

0

Là giải pháp nhanh chóng và bẩn nhất có thể sử dụng:

.my-flex-child:last-child/*.product:last-child*/ { 
    flex-grow: 100;/*Or any number big enough*/ 
} 
Các vấn đề liên quan