首页 > web前端 > css教程 > 如何使用 CSS 和 JavaScript 在两列中显示无序列表?

如何使用 CSS 和 JavaScript 在两列中显示无序列表?

DDD
发布: 2024-12-20 07:35:09
原创
496 人浏览过

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

以两列显示无序列表

现代浏览器

在现代浏览器中以两列显示无序列表,利用 CSS3 列模块:

CSS:

ul {
  columns: 2;
  -webkit-columns: 2;
  -moz-columns: 2;
}
登录后复制

[JSFiddle 演示](http://jsfiddle.net/HP85j/8/)

旧版浏览器

对于 Internet Explorer 支持、JavaScript 和DOM 操作是必要的:

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 (jQuery):

(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 && 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;
}
登录后复制

注意:初始 JavaScript 函数对列进行排序如下:

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板