动态表上的交替颜色

时间:2011-11-27 22:20:02

标签: html css

有谁知道如何在表格中的替代行上使用不同的颜色

4 个答案:

答案 0 :(得分:5)

您可以使用jquery向行添加类,如下所示:

<script type="text/javascript">
    $(document).ready(function () {
        $("table.evenodd tr:not([th]):odd").addClass("odd");
        $("table.evenodd tr:not([th]):even").addClass("even");
     });
</script>

然后使用CSS来设置样式:

    .even {background-color: #e6e6e6;}
    .odd {background-color: #ffffff;}

答案 1 :(得分:4)

http://www.w3.org/Style/Examples/007/evenodd

table.evenodd tr:nth-child(even) { background: #CCC; }
table.evenodd tr:nth-child(odd) { background: #FFF; }

答案 2 :(得分:0)

您需要将样式应用于每隔一行。你可以通过在循环中添加一个计数器来做到这一点,如果是counter-variable % 2 == 0,你可以将样式添加到相关行中,如下所示:

$i = 0;
while ($row = mysql_fetch_array($result)){
    $style = "";
    if($i%2==0)
    {
        $style = ' style="background-color: #CCC"';
    }

    echo "<tr".$style."><td>";  
    echo "<center>" .$row['name']. "</center>"; 
    echo "</td><td>" 
    echo "<center>" .$row['age']. "</center>"; 
    echo "</td><td>" 
    echo "<center>" .$row['car']. "</center>"; 
    echo "</td></tr>" 
    $i++;
}

答案 3 :(得分:-1)

通常我会有一个evenodd css类,在输出<tr>时会在PHP中定义不同的颜色,我会将其应用于元素。您通常在循环中使用行计数器并对计数器进行mod2。

$rows = 0;
while ($row = mysql_fetch_array($result)) {
  $rows++;
  $even_odd = ($rows % 2) ? 'odd' : 'even' ;
  echo "<tr class=$even_odd><td>";  
  echo "<center>" .$row['name']. "</center>"; 
  echo "</td><td>" 
  echo "<center>" .$row['age']. "</center>"; 
  echo "</td><td>" 
  echo "<center>" .$row['car']. "</center>"; 
  echo "</td></tr>" 
}