我有一个由foreach
循环生成的表。
在循环之前,我创建了$iteration = 0
。在循环开始时,它会递增$iteration
。
然后我这样做:
if($iteration % 2 == 0) {
$greyRow = 'css for a grey row';
}
我最多只有三行来测试它,但它似乎在当前规则下灰色第二和第三行,而不是仅仅是第二行。
答案 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>