#php #html #colors #html-table
#php #HTML #Цвет #html-таблица
Вопрос:
Я использую следующий 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 } ?>
Ответ №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 ?>
Комментарии:
1. Мне это нравится, но почему строка $crew[‘status’] = ‘OUT’; ? Я не думаю, что это необходимо
Ответ №2:
Вот как я бы это сделал:
<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>