0

我正在尝试制作一个超链接图像列表,目录中的每种颜色都有一个。我希望布局看起来像这样:

颜色

只是,我可能只会做 5 或 6 宽,无论高多少。要添加的图像将从 MySQL 查询的结果中生成,因此它不会是静态的。使用 foreach 语句制作这样的列表元素很容易:

foreach ($result as $key => $value) {

  echo '<li><a href="?color='.$value.'"><img src="'.$value.'.jpg" /></a></li>';

}

...以上作为一个简单的例子。但是,如果这不能通过列表实现,我将如何使用表格来做到这一点,不知道我将提前获得多少结果,因此不知道我需要多少<td>'s 和's?<tr>

谢谢!

4

4 回答 4

2

简单地使用 div 或 lifloat:left

此外,您可以计算数据库返回的结果,从而计算出您需要多少 tr/td,因此在生成表之前不知道会有多少结果并不是真的。

于 2013-11-05T23:36:21.367 回答
0

你可以用<div>标签代替吗?

foreach ($result as $key => $value) {

  echo "<div class='some-class'>
           <a href='....?color=$value'><img src='$value.jpg' /></a>
        </div>";

}

..然后应用 css 并将其浮动,以便它很好地填充父容器?IE:

div.some-class { .... .... float:left; }

于 2013-11-06T00:04:53.203 回答
0

你也可以display: inline-block这样使用:

foreach ($result as $key => $value) {
    echo <<<CODE
    <li style="display: inline-block">
        <a href="?color=$value">
            <img src="$value.jpg" />
        </a>
    </li>
CODE;
}
于 2013-11-06T00:15:02.453 回答
0

与其他答案一样,我建议您也使用列表,但如果您必须使用表格,请使用以下代码

<?php
$noPerRow = 10; //adjust this to your layout
if ($result){?>
  <table>
    <tr>
      $c = 0;       
      foreach ($result as $key => $value) {
        $c++;
        echo '<td><a href="?color='.$value.'"><img src="'.$value.'.jpg" /></a></td>';
        if ($c % $noPerRow == 0){
            echo '</tr><tr>';
        }
      }
      //tidy up last row
      while ($c % $noPerRow != 0){
        echo '<td>&nbsp;</td>';
        $c++;
      }
      ?>
      </tr></table><?php

}
?>
于 2013-11-06T00:25:50.850 回答