2016-01-03 34 views
5

Tôi có mã sau đây, để lấy danh sách các kho lưu trữ của người dùng trên GitHub và hiển thị chúng bằng cách sử dụng Hệ thống lưới của Bootstrap.
Mục đích là để hiển thị 3 repos mỗi hàng, nhưng tôi không thể tìm ra cách đóng div hàng sau mỗi 3 repos, nhưng hiện tại tất cả chúng được đặt trong một hàng, làm tràn và bóp méo thứ tự.
Mã tôi hiện có nằm trong liên kết Jsbin bên dưới.
http://jsbin.com/macifezapi/edit?html,js,output
Cảm ơn trước sự giúp đỡ nàoCách hiển thị nhiều phần tử sử dụng hệ thống lưới bootstrap và React Js

+0

Bạn có thể viết bản trình diễn bằng cách sử dụng jsbin không? Như [this one] (http://jsbin.com/vujixe/2/edit?html,js,output) – youngwind

+0

@ 梁少峰 Cập nhật với liên kết bin JS – kevgathuku

Trả lời

2

Bootstrap Grid System của Twitter có nhiều lớp học phù hợp với yêu cầu của bạn như 'col-lg - ** col -md - ** col-sm - ** col-xs - ** '. Hãy xem này:

http://getbootstrap.com/css/#grid

Để đảm bảo rằng các yếu tố ngăn xếp thành hàng và cột giống hệt nhau, gán một lớp học với chiều cao cố định cho tất cả các yếu tố:

http://jsbin.com/xipijo/edit?html,css,js

Ngoài ra, xem xét sử dụng một mẫu để hiển thị các kho lưu trữ GitHub của bạn thành html:

http://handlebarsjs.com/

+0

Vấn đề là lưới không ngăn xếp chính xác sau khi thêm các lớp lưới khởi động. Xem bin được cập nhật tại http://jsbin.com/macifezapi/1/edit?html,js,output cụ thể là hàng thứ hai của phiên bản toàn màn hình để xem ý tôi là gì: – kevgathuku

+0

Bằng cách "ngăn xếp chính xác", bạn có nghĩa là bạn muốn giống như các phần tử lưới có chiều cao bằng nhau? Hãy thử gán một lớp CSS với thuộc tính chiều cao được chỉ định cho các phần tử trong tập lệnh của bạn. –

+0

Ý tôi là ở hàng thứ hai, phải có 3 phần tử nhưng chỉ có 2 và ở hàng thứ ba chỉ có một phần tử. Các cột không có số phần tử bằng nhau – kevgathuku

1

Chỉ cần đặt các yếu tố trong col-md-4. Lưới boostrap, có 12 hàng, do đó, bằng cách cho mỗi phần tử có chiều rộng là 4/12, bạn kết thúc với 3 phần tử mỗi hàng.

JS bin: http://jsbin.com/macifezapi/1/edit?html,js,output

Tùy thuộc vào chiều rộng bạn muốn các hàng để đột nhập vào một bố trí di động (mỗi cột tham gia 100% chiều rộng), bạn có thể sử dụng col-lg-4, col-md-4, col-sm-4 hoặc col-xs-4. Để biết thêm thông tin, hãy xem Boostrap grid system. Không cần phải tự tính toán 3 hàng, và đặt một wrapper hàng xung quanh họ!

Cập nhật:

bởi vì các cột có độ cao khác nhau, hệ thống lưới điện gây ra columsn khác nhau để có anounts khác nhau của các mặt hàng. Điều này không có vẻ tốt chút nào. Giải pháp dễ nhất là thêm chiều cao mặc định cho từng mục, theo cách đó, hệ thống lưới sẽ hoạt động chính xác trở lại.

Một giải pháp khác, nếu chỉ có borwser hiện đại phải được hỗ trợ, là sử dụng kỹ thuật flexbox mới.

Dưới đây là một ví dụ: http://jsbin.com/muzepubupu/edit?html,css,js,output

Một mô tả tốt cách thức hoạt động flexbox có thể được tìm thấy ở đây: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

+0

Tôi đã cập nhật JS Bin với repo của riêng tôi để giới thiệu cách lưới không chồng đúng cách ngay cả sau khi thêm các lớp lưới khởi động. Xem bin được cập nhật tại http://jsbin.com/macifezapi/1/edit?html,js,output cụ thể là phiên bản toàn màn hình – kevgathuku

+0

Tôi hiểu, do đó, vấn đề của bạn là có 2 tầng lớp trong cột đầu tiên, 3 trong giây và 4 trong 3 ... bạn có thể cung cấp cho các elments một chiều cao cố định.Hiện nay không có giải pháp tốt cho điều này, mà làm việc cho điện thoại di động, bạn hoặc gắn bó với một bảng, hoặc bạn sử dụng flexbox html5 (tùy thuộc mà bowsers bạn phải hỗ trợ). Tôi sẽ tạo một bản demo khác bằng cách sử dụng flexbox – Stefan

+0

Việc thêm chiều cao cố định vào từng phần tử hoạt động tốt cho tôi. Cảm ơn. – kevgathuku

Các vấn đề liên quan