PHP目标行改变背景颜色

时间:2014-01-28 19:36:57

标签: php html css

这是我的乘法表代码。 通过组合PHP和HTML / CSS,我需要将每个交替的行背景颜色设置为白色或灰色。

我曾想过使用一行并使用%2==1 and %2==0 to找出奇数和偶数行,但我如何定位这些行以使我的css文件上的id或类成为目标? 我在哪里插入此代码?

<?php
    echo '<table>';
    echo '<tr><th></th>';
    for ($x = 1; $x <= 9; $x++)
        echo '<th>'.$x.'</th>';
    echo '</tr>';
    for ($y = 1; $y <= 9; $y++)
    {   
        echo '<tr><th>'.$y.'</th>';
        for ($z = 1; $z <= 9; $z++)
        {   
            echo '<td>'.($y * $z).'</td>';
        }
        echo '</tr>';
    }
    echo '</table>';
?>

3 个答案:

答案 0 :(得分:2)

当CSS可以很好地设置备用元素的样式时,无需使用PHP分配类。使用nth-child,您可以非常轻松地设置备用行的样式。

tr:nth-child(even) { 
    background: #f5f5f5;
} 
tr:nth-child(odd) { 
    background: #ddd;
}

这是一个小提示:Fiddle

以下是nth-child选择器的更多信息:https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child

答案 1 :(得分:0)

echo '<tr class ="' . ( $y % 2 == 0 ? 'even' : 'odd' ) . '"><th>'.$y.'</th>';

您可以使用三元运算符插入类

条件?如果为真:如果为假;

答案 2 :(得分:0)

As Dryden Long评论,最好是CSS,但如果你确实需要用php做,你可以这样做:

<?php
echo '<table>';
echo '<tr><th></th>';
for ($x = 1; $x <= 9; $x++)
    echo '<th>'.$x.'</th>';
echo '</tr>';
for ($y = 1; $y <= 9; $y++)
{   
    echo '<tr class="'. ( ($y%2 == 0 ) ? 'even' : 'odd' ).'"><th>'.$y.'</th>';
    for ($z = 1; $z <= 9; $z++)
    {   
        echo '<td>'.($y * $z).'</td>';
    }
    echo '</tr>';
}
echo '</table>';

然后你只需要添加CSS类,所有这些都将起作用。

table tr.even { background-color: blue }
table tr.odd  { background-color: red }