Heim > Web-Frontend > CSS-Tutorial > Wie zeige ich eine ungeordnete Liste in zwei Spalten in modernen und älteren Browsern an?

Wie zeige ich eine ungeordnete Liste in zwei Spalten in modernen und älteren Browsern an?

Barbara Streisand
Freigeben: 2024-12-22 22:58:09
Original
210 Leute haben es durchsucht

How to Display an Unordered List in Two Columns Across Modern and Legacy Browsers?

So zeigen Sie eine ungeordnete Liste in zwei Spalten an

Einführung

Diese Frage untersucht Methoden zur Darstellung einer ungeordneten Liste in zwei Spalten, insbesondere zur Anzeige in älteren Browsern wie Internet Explorer.

Moderne Browser

In modernen Browsern ist die Das CSS3-Spaltenmodul bietet Unterstützung für die Erstellung von Spalten. Durch die Verwendung dieses Moduls können Sie das gewünschte Layout wie folgt erreichen:

ul {
  columns: 2;
  -webkit-columns: 2;
  -moz-columns: 2;
}
Nach dem Login kopieren

Legacy-Browser

Für Legacy-Browser ist eine JavaScript-basierte Lösung mit DOM-Manipulation erforderlich, wenn sich der Inhalt ändert. Diese Lösung verwendet jQuery für Kürze:

HTML:

<div>
    <ul class="columns" data-columns="2">
        <li>A</li>
        <li>B</li>
        <li>C</li>
        <li>D</li>
        <li>E</li>
        <li>F</li>
        <li>G</li>
    </ul>
</div>
Nach dem Login kopieren

JavaScript:

(function($){
    var initialContainer = $('.columns'),
        columnItems = $('.columns li'),
        columns = null,
        column = 1; // account for initial column
    function updateColumns(){
        column = 0;
        columnItems.each(function(idx, el){
            if (idx !== 0 &amp;&amp; idx > (columnItems.length / columns.length) + (column * idx)){
                column += 1;
            }
            $(columns.get(column)).append(el);
        });
    }
    function setupColumns(){
        columnItems.detach();
        while (column++ < initialContainer.data('columns')){
            initialContainer.clone().insertBefore(initialContainer);
            column++;
        }
        columns = $('.columns');
    }

    $(function(){
        setupColumns();
        updateColumns();
    });
})(jQuery);
Nach dem Login kopieren

CSS:

.columns{
    float: left;
    position: relative;
    margin-right: 20px;
}
Nach dem Login kopieren

Hinweis:
Zunächst Diese Lösung ordnet die Spalten wie folgt an:

A  E
B  F
C  G
D
Nach dem Login kopieren

Die ursprüngliche Frage forderte stattdessen eine Reihenfolge wie diese:

A  B
C  D
E  F
G
Nach dem Login kopieren

Passen Sie für diese Variante den folgenden JavaScript-Code an:

function updateColumns(){
    column = 0;
    columnItems.each(function(idx, el){
        if (column > columns.length){
            column = 0;
        }
        $(columns.get(column)).append(el);
        column += 1;
    });
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie zeige ich eine ungeordnete Liste in zwei Spalten in modernen und älteren Browsern an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage