Tôi đang chơi với flexbox của css3 trong Chrome (không cần phải lo lắng về trình duyệt chéo cho điều này). Tôi đang có một thời gian khó khăn thuyết phục nó để đặt ra nội dung của tôi theo cách tôi muốn. Dưới đây là một phác thảo của mục tiêu của tôi:Làm thế nào để sử dụng flexbox css3 để tạo bố cục nhiều cột mà không cần mở rộng theo chiều dọc?
Dưới đây là một jsFiddle của nỗ lực của tôi: http://jsfiddle.net/Yht4V/2/ Điều này dường như làm việc tốt, ngoại trừ mỗi .group
sẽ mở rộng chiều cao của nó chứ không phải là tạo ra nhiều cột.
Tôi đang sử dụng flexbox phổ biến ở đây. Các body
đưa ra theo chiều dọc, với #content
div lấy chiều cao còn lại của trang. Mỗi .group
được bố trí theo chiều ngang. Cuối cùng, mỗi .item
được đặt trong một số .group
theo chiều dọc với gói.
Thật không may, mỗi .group
kết thúc bằng một cột đơn bằng cách mở rộng chiều cao #content
, làm cho thanh cuộn dọc (không mong muốn). Nếu tôi đặt chiều cao của mỗi .group
thành kích thước pixel cố định, các mục sẽ vỡ ra thành nhiều cột, nhưng điều này sẽ đánh bại tính lưu động của flexbox. Dưới đây là những gì nó trông giống như với chiều cao cố định: http://jsfiddle.net/Yht4V/3/
Vì vậy, làm thế nào tôi có thể nhận được #content
div để không mở rộng theo chiều dọc vì mọi thứ được quản lý với flexbox mà không đặt độ cao cố định? Tôi đã mong đợi flexbox để kích hoạt thêm cột thay vì mở rộng chiều cao của cha mẹ của nó và gây ra một thanh cuộn.
nên toàn bộ điều là chất lỏng không có vấn đề làm thế nào lớn/nhỏ bạn làm cho cửa sổ? Tại sao các mục có chiều rộng cố định 200px? Bất kỳ nhóm nào có thể có các cột hay chỉ là cột đầu tiên? Nên có bất kỳ tràn ở tất cả? (nếu tôi thêm 100 mục vào mỗi nhóm) Flexbox không tạo các cột có thể xếp chồng như những gì bạn muốn, đó không phải là mục tiêu bố cục cho flexbox.Bắt những gì bạn muốn trong pic của bạn là dễ dàng Tôi chỉ không biết tất cả các yêu cầu mở rộng quy mô, mà có thể làm cho nó rất khó hoặc không thể với CSS chỉ. – skyline3000
@ skyline3000 Tôi đang thử nghiệm với thiết kế kiểu "metro" của Windows 8 với HTML/CSS đơn giản, vì vậy, lý tưởng là mỗi nhóm sẽ thêm cột theo chiều ngang khi cần và gây ra thanh cuộn ngang 'iff' cần thiết (để thêm phần tử theo chiều dọc trước, sau đó quấn theo cột theo chiều ngang). Tôi có thể hình dung các cách để thực hiện điều này với JS, nhưng hy vọng nó có thể được thực hiện chỉ với HTML5/CSS3 trong Webkit. –
@ skyline3000 Để trả lời bạn trực tiếp câu hỏi: Có, nó phải là chất lỏng bất kể chiều cao/chiều rộng của màn hình (Tôi không có quyền kiểm soát kích thước màn hình). Mỗi mục là kích thước cố định theo thiết kế, điều này sẽ đúng cho việc thực hiện cuối cùng của tôi. Có lẽ không phải là những kích thước chính xác, nhưng vẫn cố định. Cuối cùng, như tôi đã đề cập ở trên, các phần tử phải điền theo chiều dọc sau đó tràn theo chiều ngang. –