2014-01-28 105 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