我想创建一个站点,该站点显示数据库中的大量记录。为了使它更易于读者阅读,我想使用一种造型。一个记录是白色背景,下一个是蓝色,下一个是hhite。
所以我尝试了这个:
<?php while ($info = mysql_fetch_array($data)){
PRINT "<tr>";
PRINT "<td>" .$info['articlenr']. "</td>";
PRINT "<td>" .$info['stock']. "</td>";
PRINT "</tr>";
PRINT "<tr>";
PRINT "<td bgcolor=#0066FF>" .$info['articlenr']. "</td>";
PRINT "<td bgcolor=#0066FF>" .$info['stock']. "</td>";
PRINT "</tr>";
}
?>
这适用于视图,但问题是,蓝色记录与白色相同,而不是下一个,它只是将记录加倍并使其成为另一种颜色。
我该怎么做?
答案 0 :(得分:1)
使用:nth-of-type(even)
获取偶数/奇数颜色组合。
这是一个演示示例:
HTML:
<table>
<tr><td>item1</td>
</tr>
<tr><td>item2</td>
</tr>
<tr><td>item3</td>
</tr>
<tr><td>item4</td>
</tr>
</table>
的CSS:
tr:nth-of-type(even) { background-color: #0066FF; }
答案 1 :(得分:1)
如果你想在PHP中这样做,你可以这样做:
<?php
$iter = 0;
$color1 = 'red'; //can se hex code too, like #0066FF;
$color2 = 'blue';
while ($info = mysql_fetch_array($data))
{
echo '<tr style="background-color:'.( ($iter%2==0) ? $color1 : $color2).';">';
// rest of the printing stuff
$iter++;
}
?>
声明
($iter%2==0) ? $color1 : $color2
这样做:它询问迭代器(或行号)是否均匀的问题。如果是,则需要color1。如果不是(行不均匀),则采用第二种颜色。
PHP Smarty适合做这种事情(迭代颜色和样式),但初学者可能很难。
答案 2 :(得分:0)
请浏览此链接:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started
答案 3 :(得分:0)
我可以就您的代码提供一些建议吗?您的方法混合了PHP和HTML,使您的开发环境难以解析HTML,并且您可以通过更少的击键来实现相同的功能!请考虑这种方法:
<?php while ($info = mysql_fetch_array($data)): ?>
<tr>
<td><?php echo $info['articlenr'] ?></td>
<td><?php echo $info['stock'] ?></td>
</tr>
<?php endwhile ?>
我所做的改变:
echo
而不是print
将此与Joke_Sense10的答案相结合,以获得完整的解决方案。