对于现代浏览器,以两列显示无序列表的主要方法是利用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中文网其他相关文章!