首頁 >web前端 >css教學 >如何使用 CSS 和 JavaScript 在兩列中顯示無序列表?

如何使用 CSS 和 JavaScript 在兩列中顯示無序列表?

Barbara Streisand
Barbara Streisand原創
2024-12-11 14:34:10977瀏覽

How Can I Display an Unordered List in Two Columns Using CSS and JavaScript?

以兩列顯示無序列表

簡介

對於現代瀏覽器,以兩列顯示無序列表的主要方法是利用CSS3列模組。然而,對於 Internet Explorer 等舊版瀏覽器,需要基於 JavaScript 的解決方案。

現代瀏覽器

使用CSS3 columns 模組,您只需添加以下CSS 規則即可實現所需的效果效果:

ul {
  columns: 2;
  -webkit-columns: 2;
  -moz-columns: 2;
}

舊版瀏覽器

對於舊版瀏覽器,您可以採用JavaScript 解決方案涉及DOM 操作。以下是使用 jQuery 的 JavaScript 程式碼範例:

$(function(){
    var initialContainer = $('.columns'),
        columnItems = $('.columns li'),
        columns = null,
        column = 1;

    function updateColumns(){
        column = 0;
        columnItems.each(function(idx, el){
            if (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');
    }

    setupColumns();
    updateColumns();
});

這是對應的CSS:

.columns{
    float: left;
    position: relative;
    margin-right: 20px;
}

變體顯示選項

上面提供的程式碼將在以下列中顯示結果排列:

A  E
B  F
C  G
D

實作所要求的變體佈局OP:

A  B
C  D
E  F
G

修改updateColumns()函數如下:

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

以上是如何使用 CSS 和 JavaScript 在兩列中顯示無序列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn