Was ist mit dem folgenden HTML die einfachste Methode, um die Liste als zwei Spalten anzuzeigen?
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>
Gewünschte Anzeige:
A B
C D
E
Die Lösung muss in Internet Explorer funktionieren können.
Antworten:
Moderne Browser
Nutzen Sie das CSS3-Spaltenmodul, um das zu unterstützen, wonach Sie suchen.
http://www.w3schools.com/cssref/css3_pr_columns.asp
CSS:
http://jsfiddle.net/HP85j/8/
Legacy-Browser
Leider benötigen Sie für die IE-Unterstützung eine Codelösung, die JavaScript- und Dom-Manipulationen umfasst. Dies bedeutet, dass Sie jedes Mal, wenn sich der Inhalt der Liste ändert, den Vorgang zum Neuordnen der Liste in Spalten und zum erneuten Drucken ausführen müssen. Die folgende Lösung verwendet der Kürze halber jQuery.
http://jsfiddle.net/HP85j/19/
HTML:
JavaScript:
CSS:
BEARBEITEN:
Wie unten ausgeführt, werden die Spalten wie folgt angeordnet:
während das OP nach einer Variante fragte, die der folgenden entspricht:
Um die Variante zu erreichen, ändern Sie einfach den Code wie folgt:
quelle
A B
(das zweite Element sollte rechts angehängt werden), in Ihren Beispielen jedochA E
.Ich habe mir die Lösung von @ jaider angesehen, die funktioniert hat, aber ich biete einen etwas anderen Ansatz an, mit dem ich meiner Meinung nach einfacher arbeiten kann und der sich in allen Browsern als gut erwiesen hat.
Standardmäßig zeigt eine ungeordnete Liste die Position des Aufzählungszeichens außerhalb an. In einigen Browsern kann es jedoch zu Anzeigeproblemen kommen, die auf der Art und Weise beruhen, wie der Browser Ihre Website gestaltet.
So zeigen Sie es im folgenden Format an:
usw. Verwenden Sie Folgendes:
Dies sollte alle Ihre Probleme mit der Anzeige von Spalten lösen. Alles Gute und danke @jaider, da Ihre Antwort mir geholfen hat, dies zu entdecken.
quelle
Ich habe versucht, dies als Kommentar zu veröffentlichen, konnte jedoch die Spalten nicht richtig anzeigen (gemäß Ihrer Frage).
Sie fragen nach:
AB
CD
E.
... aber die als Lösung akzeptierte Antwort wird zurückkehren:
ANZEIGE
SEIN
C.
... also ist entweder die Antwort falsch oder die Frage ist.
Eine sehr einfache Lösung wäre,
<ul>
die Breite Ihrer<li>
Artikel einzustellen und dann zu schweben und die Breite Ihrer Artikel so einzustellenBeispiel hier http://jsfiddle.net/Jayx/Qbz9S/1/
Wenn Ihre Frage falsch ist, gelten die vorherigen Antworten (mit einem JS-Fix für mangelnde IE-Unterstützung).
quelle
Ich mag die Lösung für moderne Browser, aber die Aufzählungszeichen fehlen, deshalb füge ich einen kleinen Trick hinzu:
http://jsfiddle.net/HP85j/419/
quelle
list-style-position: inside;
ist eine bessere Lösung, wenn die Kugeln richtig angezeigt werden.Hier ist eine mögliche Lösung:
Snippet:
Und es ist geschafft.
Verwenden Sie für 3 Spalten die
li
Breite 33%, für 4 Spalten 25% usw.quelle
Dies ist der einfachste Weg, dies zu tun. Nur CSS.
quelle
Sie können CSS nur verwenden , um zwei oder mehr Spalten festzulegen
quelle
Dies kann mithilfe der CSS-Eigenschaft für die Spaltenanzahl auf dem übergeordneten div erreicht werden.
mögen
Überprüfen Sie dies für weitere Details.
So wird eine schwebende DIV-Liste in Spalten und nicht in Zeilen angezeigt
quelle
column-count
zeigt die Artikel nicht in der richtigen Reihenfolge an. Die gewünschte Anzeige in der ersten Zeile ist beispielsweiseA B
(das zweite Element sollte rechts angehängt werden), aber wenn Sie es verwendencolumn-count
, wird es angezeigtA E
.Sie können dies ganz einfach mit dem jQuery-Columns-Plugin tun, um beispielsweise eine ul mit einer Klasse von .mylist zu teilen, die Sie tun würden
Hier ist ein Live-Beispiel zu jsfiddle
Das gefällt mir besser als mit CSS, weil mit der CSS-Lösung nicht alles vertikal nach oben ausgerichtet ist.
quelle
<ul>
Liste tatsächlich in mehrere Listen ... Das könnte andere Dinge komplizieren.mehr eine Antwort nach ein paar Jahren!
in diesem Artikel: http://csswizardry.com/2010/02/mutiple-column-lists-using-one-ul/
HTML:
CSS:
quelle
In
updateColumns()
Not,if (column >= columns.length)
anstattif (column > columns.length)
alle Elemente aufzulisten (C wird zum Beispiel übersprungen), also:http://jsfiddle.net/e2vH9/1/
quelle
Mit Bootstrap ... Diese Antwort ( https://stackoverflow.com/a/23005046/1128742 ) hat mich auf diese Lösung hingewiesen:
http://jsfiddle.net/patrickbad767/472r0ynf/
quelle
Die Legacy-Lösung in der oberen Antwort hat bei mir nicht funktioniert, da ich mehrere Listen auf der Seite beeinflussen wollte und die Antwort eine einzelne Liste voraussetzt und ein gutes Stück globalen Status verwendet. In diesem Fall wollte ich jede Liste in einem ändern
<section class="list-content">
:quelle
Obwohl ich Gabriels Antwort auf die Arbeit bis zu einem gewissen Grad gefunden habe, habe ich beim Versuch, die Liste vertikal zu ordnen (erste ul AD und zweite ul EG), Folgendes gefunden:
Ich habe die JQuery überarbeitet, damit das oben Genannte hoffentlich nicht passiert.
quelle
Dies war eine perfekte Lösung für mich, seit Jahren:
http://css-tricks.com/forums/topic/two-column-unordered-list/
quelle
Abdul
in seiner Antwort verwendet wird, identisch mit der verwendeten Breite und ID.