首頁 > web前端 > css教學 > 如何在現代和傳統瀏覽器中以兩列顯示無序列表?

如何在現代和傳統瀏覽器中以兩列顯示無序列表?

Barbara Streisand
發布: 2024-12-22 22:58:09
原創
109 人瀏覽過

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

如何在兩列中顯示無序列表

簡介

本問題探討了跨兩列呈現無序列表的方法,特別是用於顯示在Internet Explorer 等舊版瀏覽器中。

現代瀏覽器

在現代瀏覽器中,CSS3 columns 模組提供對建立列的支援。透過利用此模組,您可以實現所需的佈局,如下所示:

ul {
  columns: 2;
  -webkit-columns: 2;
  -moz-columns: 2;
}
登入後複製

舊版瀏覽器

對於舊版瀏覽器,當內容發生更改時,需要一個涉及DOM操作的基於JavaScript 的解決方案。解決方案使用 jQuery簡潔:

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>
登入後複製

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);
登入後複製

CSS:

.columns{
    float: left;
    position: relative;
    margin-right: 20px;
}
登入後複製

注意:
最初,此解決方案將對列進行如下排序:

A  E
B  F
C  G
D
登入後複製

原始問題要求這樣的排序:

A  B
C  D
E  F
G
登入後複製

對於此變體,調整以下JavaScript 程式碼:

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

以上是如何在現代和傳統瀏覽器中以兩列顯示無序列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板