モジュラス演算子を使用してこれを行うことができますが、実際にはCSSだけで可能です。
display: inline-block
を使用する 、あなたは良いコラム効果を得ることができます。 このJSFiddleはこちら
をご覧ください 。私は怠惰なのでJavaScriptのみを使用しています。 <div>
あなたの場合、リストはPHPによって生成されます。それらを特定の幅に制限したい場合は、コンテナに入れるだけです<div>
固定幅で。
私はテーブルを使用した解決策を考え出しました。これは本当にあなたがすべきことです(あなたは特別なユースケースを与えていません)。以下のコードと、動作するデモこちら 。
$columns = 4; // The number of columns you want.
echo "<table>"; // Open the table
// Main printing loop. change `30` to however many pieces of data you have
for($i = 0; $i < 30; $i++)
{
// If we've reached the end of a row, close it and start another
if(!($i % $columns))
{
if($i > 0)
{
echo "</tr>"; // Close the row above this if it's not the first row
}
echo "<tr>"; // Start a new row
}
echo "<td>Cell</td>"; // Add a cell and your content
}
// Close the last row, and the table
echo "</tr>
</table>";
最後に、列中心のレイアウトを作成しました。今回はdiv
に戻ります。 s。ここにいくつかのCSSがあります。これは別のファイルに入れる必要があります。インラインのままにしないでください 。
<?php
$rows = 10; // The number of columns you want.
$numItems = 30; // Number of rows in each column
// Open the first div. PLEASE put the CSS in a .css file; inline used for brevity
echo "<div style=\"width: 150px; display: inline-block\">";
// Main printing loop.
for($i = 0; $i < $numItems; $i++)
{
// If we've reached our last row, move over to a new div
if(!($i % $rows) && $i > 0)
{
echo "</div><div style=\"width: 150px; display: inline-block\">";
}
echo "<div>Cell $i</div>"; // Add a cell and your content
}
// Close the last div
echo "</div>";
?>