Вопрос:
Привет я пытаюсь изменить цвета таблицы HTML в зависимости от значений, которые я прочитал из базы данных. Я посылаю изображение того, чего я пытаюсь достичь.
Лучший ответ:
Во-первых, я думаю, что вы получили downvote, потому что ваш пост действительно недостаточно подробно (вы должны попытаться представить пример кода для того, что вы пробовали до сих пор).
Я предполагаю, что вы используете PHP для визуализации HTML и хотите применить другой оттенок оранжевого цвета на основе значения, в котором значение “0” является белым, а значение, скажем, “30”, равно полностью оранжевый. Я не тестировал здесь код и, без сомнения, вам нужно будет его модифицировать для работы с вашим конкретным кодом – поскольку я не знаю, какие данные доступны.
$max = 30; $values = array( 0, 5, 10, 15, 20, 25, 30 ); $white = array(255, 255, 255); $orange = array(255, 63, 0); echo ‘<table><tr>’; foreach ( $values as $value ) { $red = $white[ 0 ] + ( ( $orange[ 0 ] — $white[ 0 ] ) * $value / $max ); $green = $white[ 1 ] + ( ( $orange[ 1 ] — $white[ 1 ] ) * $value / $max ); $blue = $white[ 2 ] + ( ( $orange[ 2 ] — $white[ 2 ] ) * $value / $max ); $color = $rgb2html( $red, $green, $blue ); echo ‘<td style=»background-color: ‘.$color.'»>’.$value.'</td>’; } echo ‘</tr></table>’; // function from function rgb2html($r, $g=-1, $b=-1) { if (is_array($r) && sizeof($r) == 3) list($r, $g, $b) = $r; $r = intval($r); $g = intval($g); $b = intval($b); $r = dechex($r<0?0:($r>255?255:$r)); $g = dechex($g<0?0:($g>255?255:$g)); $b = dechex($b<0?0:($b>255?255:$b)); $color = (strlen($r) < 2?’0′:»).$r; $color .= (strlen($g) < 2?’0′:»).$g; $color .= (strlen($b) < 2?’0′:»).$b; return ‘#’.$color; } Ответ №1
Есть два способа справиться с этим.
- Вы делаете свои ячейки определенным классом в каждом диапазоне значений с помощью операторов if & else. Бит сложный.
2. Вы представляете всю свою таблицу, а затем читаете каждое значение с помощью javascript и меняете цвет фона.