在一张动态桌上的交替的桌行背景颜色

时间:2011-05-11 02:08:31

标签: php css

我有一个由foreach循环生成的表。

在循环之前,我创建了$iteration = 0。在循环开始时,它会递增$iteration

然后我这样做:

if($iteration % 2 == 0) { 
  $greyRow = 'css for a grey row'; 
}

我最多只有三行来测试它,但它似乎在当前规则下灰色第二和第三行,而不是仅仅是第二行。

3 个答案:

答案 0 :(得分:4)

以下内容将为偶数行添加grey类。

echo '<tr', ($iteration & 1 ? ' class="grey"': ''), '>';

注意

这使用bitwise operator。这是一个微观优化,但远比模数算子更优化(虽然在这些情况下非常出名)。

另外,我建议您使用针对偶数行和奇数行的CSS类与内联样式或仅切换单个类(即grey)。

echo '<tr class="', ($iteration & 1 ? 'even': 'odd'), '">';

答案 1 :(得分:2)

也许你还需要一个else语句来回到奇数行上的另一种颜色。如果没有看到更多的实施,我们就不太确定了。

if ($iteration % 2 == 0) {
    $css = 'css for a grey row';
} else {
    $css = 'css for a white row';
}

答案 2 :(得分:2)

我喜欢这样做..

<style type="text/css">
.odd td { background: #eee; }
</style>
<tr class="<?= ++$iteration % 2? 'odd' : 'even'; ?>">....</tr>