8

可変の都市名のリストがあり、それを4列に均等に分割したいと思います。私はいくつかの解決策を持っていますが、それは圧倒されて汚いように見えます。それを行うための最良かつ最も簡単な方法は何ですか?

私の解決策はここにあります:

{% set cities_in_column = cities|length/4|int %}
{% set step=0 %}
<div class="four columns">
    {% for city in cities|sort %}
        {% if step > cities_in_column %}
            {% set step = 0 %}
            </div>
            <div class="four columns">
        {% endif %}
        <h5><a href="/city/{{ city.url }}">{{ city.name }}</a> <span style="float:right;">({{ city.users_count }})</span></h5>
        {% set step=step + 1 %}
    {% endfor %}
</div>
4

2 に答える 2

17

slicesあなたはフィルターを探しています:

{% for column in cities | sort | slice(4) -%}
<div class="four columns">
    {%- for city in column -%}
    <h5><a href="/city/{{ city.url}}">{{ city.name }}</a>
    <span style="float:right;">({{ city.users_count }})</span></h5>
    {%- endfor -%}
</div>
{%- endfor %}

(反復可能オブジェクトをグループに分割するのではなく)の実行を提供するslicescalledの補足もあります。batchnn

于 2012-06-19T04:19:31.943 に答える
1

これはCSS*の仕事です。

<ol style="column-count: 4;">
{% for city in cities|sort %}
    <li>
        <a href="/city/{{ city.url }}">{{ city.name }}</a> ({{ city.users_count }})
    </li>
{% endfor %}
</ol>

(*それでも、、、column-countなどfloatflex

于 2019-06-26T18:08:52.650 に答える