2016-01-03 1 views
5

Ich habe den folgenden Code, der eine Liste der Repositorys eines Benutzers auf GitHub erhalten soll und sie mit Bootstrap-Grid-System anzuzeigen.
Die Absicht ist, 3 Repos pro Zeile anzuzeigen, aber ich kann nicht herausfinden, wie das Zeilen-Div nach jeweils 3 Repos zu schließen, aber derzeit werden alle von ihnen in einer Zeile platziert, die die Reihenfolge überläuft und verzerrt.
Der Code, den ich derzeit habe, ist im JSBIN-Link unten.
http://jsbin.com/macifezapi/edit?html,js,output
Vielen Dank im Voraus für jede HilfeWie mehrere Elemente mit Bootstrap-Grid-System und React Js anzuzeigen

+0

Kannst du eine Demo mit jsbin schreiben? Wie [diese] (http://jsbin.com/vujixe/2/edit?html,js,output) – youngwind

+0

@ ※ Aktualisiert mit der JS bin Link – kevgathuku

Antwort

2

Twitters Bootstrap Grid-System viele Klassen, die Ihre Anforderungen wie ‚col-lg passen - ** col -md - ** col-sm - ** col-xs - ** '. Werfen Sie einen Blick auf diese:

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

Um sicherzustellen, dass Elemente in identische Zeilen und Spalten stapeln, weisen eine Klasse mit einer festen Höhe auf alle Elemente:

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

Bedenken Sie auch mit eine Vorlage, um Ihre GitHub Repositories zu machen html:

http://handlebarsjs.com/

+0

Das Problem besteht darin, dass das Gitter nach dem Hinzufügen der Bootstrap-Gitterklassen nicht korrekt gestapelt wird. Siehe die aktualisierte Bin unter http://jsbin.com/macifezapi/1/edit?html,js,output speziell die zweite Zeile der Vollbild-Version, um zu sehen, was ich meine – kevgathuku

+0

Durch "richtig stapeln" meinst du, dass du würdest wie die Gitterelemente gleiche Höhen haben? Versuchen Sie, den Elementen in Ihrem Skript eine CSS-Klasse mit einem bestimmten Höhenattribut zuzuweisen. –

+0

Was ich meine ist, dass es in der zweiten Reihe 3 Elemente geben sollte, aber es gibt nur 2 und in der dritten Reihe gibt es nur ein Element. Die Spalten haben nicht die gleiche Anzahl von Elementen – kevgathuku

1

einfach die Elemente in col-md-4 setzen. Das Boostrap-Gitter hat 12 Reihen. Wenn Sie also jedem Element eine Breite von 4/12 geben, erhalten Sie 3 Elemente pro Reihe.

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

Je nachdem, welche Breite Sie wollen die Zeilen in ein mobiles Layout zu brechen (jede Spalte unter 100% Breite) Sie col-lg-4, col-md-4, col-sm-4 oder col-xs-4 verwenden können. Für weitere Informationen siehe Boostrap grid system. Es besteht keine Notwendigkeit, 3 Zeilen manuell zu berechnen und einen Zeilenwrapper um sie zu legen!

Update:

Becuase die Spalten haben unterschiedliche Höhen, verursacht das Gittersystem die verschiedenen columsn verschiedenen anounts von Elementen zu haben. Das sieht überhaupt nicht gut aus. Am einfachsten ist es, jedem Element eine Standardhöhe hinzuzufügen, damit das Rastersystem wieder korrekt funktioniert.

Eine andere Lösung, wenn nur moderne borwser unterstützt werden müssen, ist die neue Flexbox-Technik. Hier

ein Beispiel: http://jsbin.com/muzepubupu/edit?html,css,js,output

Eine gute Beschreibung, wie Flexbox Arbeiten finden Sie hier: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

+0

Ich habe aktualisiert JS Bin mit meinem eigenen Repo, um zu demonstrieren, wie das Gitter auch nach dem Hinzufügen der BootSrap-Gitterklassen nicht richtig gestapelt wird. Sehen Sie die aktualisierte Bin bei http://jsbin.com/macifezapi/1/edit?html,js,output speziell die Vollbild-Version – kevgathuku

+0

Ich sehe, so Ihr Problem ist, dass es 2 Elemente in der ersten Spalte, 3 in der zweiten Spalte gibt und 4 in den 3 ... kannst du den Elementen eine feste Höhe geben.Gegenwärtig gibt es keine gute Lösung, die für Mobilgeräte funktioniert, Sie bleiben entweder bei einem Tisch oder Sie verwenden die html5 flexbox (abhängig davon, welche Browser Sie unterstützen müssen). Ich mache noch eine Demo mit flexbox – Stefan

+0

Hinzufügen der festen Höhe zu jedem Element funktionierte gut für mich. Vielen Dank. – kevgathuku