0

我有一个生成 UL LI 语句的脚本,并创建一个单列列表,现在我需要修改它,而不是一个长列表,我将它分成几列,每列有 10 个元素,直到最后。

    for ($i=0;$i<sizeof($manufacturer_sidebox_array);$i++) {

  $content = '';
  $content .= '<li ><a class="hide" href="' . zen_href_link(FILENAME_DEFAULT,   'manufacturers_id=' . $manufacturer_sidebox_array[$i]['id']) . '">';
  $content .= $manufacturer_sidebox_array[$i]['text'];
  $content .= '</a></li>' . "\n";
  echo $content;
}

我想弄清楚的是如何以我可以创建列的方式插入一些 if 语句。

现在的输出是:

Col1

第一 第二 第三 第四 第五 第六 . . . 第二十

我想要的是:

Col1 Col2 Col3 ... Col6

前 11 日 21 日 . . . 10 日 20 日 30 日

4

1 回答 1

0

这会将数组分成十个组,将每个组包装在一个columndiv 中。请注意,我们在循环之前开始第一个 div,并在循环之后结束最后一个 div。打破 10 个条目的关键部分是模运算符- 您可以在 PHP 文档%中阅读它:

echo '<div class="menuColumn">';

for ($i=0; $i<count($manufacturer_sidebox_array); $i++) {

    if ($i % 10 == 0){
        echo '</div><div class="menuColumn">';
    }

    $content = '';
    $content .= '<li ><a class="hide" href="' . zen_href_link(FILENAME_DEFAULT,   'manufacturers_id=' . $manufacturer_sidebox_array[$i]['id']) . '">';
    $content .= $manufacturer_sidebox_array[$i]['text'];
    $content .= '</a></li>' . "\n";
    echo $content;

}

echo '</div>';

您还需要这种 CSS 样式来使列水平堆叠,而不是默认的垂直堆叠。显然,您可以根据自己的喜好调整边距:

<style>
.menuColumn{
    display:inline-block;
    margin:10px;
    vertical-align: text-top;
}
</style>
于 2014-03-31T17:43:45.310 回答