如何根据内容对表格单元格进行着色

时间:2016-10-16 21:00:29

标签: php html colors html-table

我使用以下php代码为我的html表中的不同单元格着色,但是想知道是否有更好的方法来执行此操作。

<?php if($crew['status'] == 'OUT') { ?>
  <td style='text-align:center;font-size:80%;color:red'   ><?php echo $crew['status'] ?></td>
<?php } else if($crew['status'] == 'OPEN') { ?>
  <td style='text-align:center;font-size:80%;color:blue'  ><?php echo $crew['status'] ?></td>
<?php } else if($crew['status'] == 'CONFIRMED') { ?>   
  <td style='text-align:center;font-size:80%;color:green' ><?php echo $crew['status'] ?></td>
<?php } else if($crew['status'] == 'WAITLIST') { ?>   
  <td style='text-align:center;font-size:80%;color:purple'><?php echo $crew['status'] ?></td>
<?php } else  { ?>   
  <td style='text-align:center;font-size:80%;color:orange'>TIMESPAN</td>
<?php } ?>  

2 个答案:

答案 0 :(得分:1)

我就是这样做的:

  <td class="status-<?php echo $crew['status']; ?>><?php echo $crew['status'] ?></td>

  ...

  <style type="text/css">
    td.status {
      text-align: center;
      font-size: 80%;
      color: orange;
    }
    td.status-OUT { color: red; }
    td.status-OPEN { color: blue; }
    td.status-CONFIRMED { color: green; }
    td.status-WAITLIST { color: purple; }
  </style>

答案 1 :(得分:1)

很多......你应该避免使用大量的内联CSS。

您可以执行以下操作:

<style>
#yourtable tr td {
  text-align:center;
  font-size:80%;
}
</style>

<?php 
$colors = [
  'OUT' => 'red',
  'OPEN' => 'blue',
  'CONFIRMED' => 'green',
  'WAITLIST' => 'purple'
];
?>

<?php if (array_key_exists($crew['status'], $colors)): ?>
<td style="color:<?= $colors[$crew['status']]?>"><?= $crew['status'] ?></td>
<?php else: ?>
<td style="color:orange">TIMESPAN</td>
<?php endif ?>