2014-01-28 110 views
0

这是我的代码乘法表。 通过结合PHP和HTML/CSS我需要使每个交替行的背景颜色为白色或灰色。PHP目标行改变背景颜色

我想过使用一行,并使用%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

'TD:第n个孩子(甚至){背景:#f5f5f5} TD :nth-​​child(奇怪){background:#ddd}' – mdesdev

+0

@mdesdev你又来了!你应该让这个答案,这是最好的方式去做。 –

+0

@DrydenLong haha​​ha我知道,我现在正在做一些事情,很忙,只是不时地检查新的问题并发表评论。如果你愿意,稍微详细说一下;) – mdesdev

回答

0

作为德莱顿长注释,最好是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 } 
+0

整个问题的关键在于练习使用php进行html/css操作。 这非常有帮助,我也学会了使用它的三元条件。谢谢! – tonesbonesjones

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

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

条件?如果为true:如果为false;

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

+0

+1当然;) – mdesdev

+0

@mdesdev谢谢! –

+0

不客气;) – mdesdev