是否可以创建在多列中排序的项目列表,选择最多项目的列?

Posted

技术标签:

【中文标题】是否可以创建在多列中排序的项目列表,选择最多项目的列?【英文标题】:Is it possible create a list of items ordered in multiple columns, select a column for a maximum of items? 【发布时间】:2013-06-27 00:51:39 【问题描述】:

如果太复杂或太费力,我可以使用刚刚在 CSS3 中引入的多列布局。你有什么推荐的?

基本上我想在模板中实现的是:

Elemento1     Elemento5
Elemento2     Elemento6
Elemento3     Elemento7
Elemento4

代替:

Elemento1
Elemento2
Elemento3
Elemento4
Elemento5
Elemento6
Elemento7

我通常使用% for a in b % a % endfor %

我想知道是否有办法打破循环并从同一模板的另一部分恢复并继续从中断处对元素充电。

【问题讨论】:

【参考方案1】:

如果您询问 CSS3 解决方案,您可以这样做的唯一方法是使用 column-count 属性..

Demo

<div class="wrap">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
    <div>7</div>
</div>

CSS

div.wrap 
    border: 1px solid #f00;
    column-count:2;
    -moz-column-count:2;
    -webkit-column-count:2;

注意:column-count 属性尚未得到广泛支持。我会 建议您以编程方式打破布局。有关支持的更多信息,请参阅this 链接

【讨论】:

事实上,这就是为什么我问是否有办法打破循环并恢复。你知道我该怎么做吗? 无前缀属性应该always在前缀版本之后【参考方案2】:

如果你不能使用 CSS3 列数,那么可能是这样的: (从未真正使用过 Django)

<ul><div class="col">    
% for a in b %
  % if forloop.counter == 4 %
    <li>a</li>
    </div><div class="col">
  % else %
    <li>a</li>
  % end if %
% endfor %
</div></ul>

CSS: (http://jsfiddle.net/Mp5Rf/)

.col 
  display: inline-block;
  float: left;
  padding-left: 25px;

除了硬编码 4,您是否可以使用 % widthratio b|length 2 1 % 来获得中点(四舍五入)?

【讨论】:

以上是关于是否可以创建在多列中排序的项目列表,选择最多项目的列?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在颤动的可重新排序的列表视图中禁用对单个项目的重新排序?

基于成本字段存储排序项目的数据结构[关闭]

在某个 Id 之后选择项目/行

高效的前 10 种多列排序

WPF中combobox显示多列的下拉框

如何按字母顺序对项目进行排序?