交替行颜色与3个不同的背景

时间:2012-03-06 06:18:21

标签: php css

而不是我目前能够生成的2行,我需要一种方法来替换表格行的3种颜色。

    <style type="text/css">
    tr.d0 td {
        background-color: #FFFFFF; color: black;

    }
    tr.d1 td {
        background-color: rgba(79, 129, 128, .2); color: black;

    }
    tr.d2 td {
        background-color: rgba(119, 149, 60, .2); color: black;

    }
    </style>

for($i =0; $i ...){

$rowclass = 0;
<tr class="d<?php echo $rowclass; ?>">

</tr>

$rowclass = 1 - $rowclass;

}

4 个答案:

答案 0 :(得分:3)

与PHP无关,但是,如果您使用的是CSS3,则它支持某些structural pseudo classes。您可以尝试使用:nth-of-type(3n), :nth-of-type(3n+1),:nth-of-type(3n+2)来执行此操作。

答案 1 :(得分:2)

$rowclass = (1 + $rowclass) % 3;

甚至更好,废弃并只使用

$i % 3

代替。

答案 2 :(得分:0)

您正在寻找modulo运营商。这是PHP中的%(以及大多数C风格的语言),它将为您提供剩余的任何数字除以。在这种情况下,您可以使用它为每行构造className,如下所示:

for ($i=0; $i < $max, $i++) {
  $className = 'd' . ($i % 3);

  echo '<tr class="' . $className . '">';
  // do something with the row
  echo '</tr>';
}

答案 3 :(得分:0)

另一种可能不使用PHP本身但jQuery的解决方案可能就像:

$("table tr").each(function () {
    var i = $("table tr").index($(this));
    $(this).addClass("d" + (i % 3));
});

我创建了一个jsFiddle来说明这种情况。