2013-04-02 3 views
3

В PHP файл у меня есть переменная $number, которая содержит информацию о размере шрифта и он прекрасно работает:Изменение цвета фона в зависимости от размера шрифта

echo "<div style='font-size:".$number."'px> .... " 

А теперь мне интересно, если это возможно, чтобы изменить фон от этого div в зависимости от размера шрифта? Значение по умолчанию - белое, поэтому оно может быть <div style='background-color:#FFFFFF;font-size:10px для размера шрифта 10px. Я хотел бы немного изменить цвет, если размер шрифта больше, например, от белого до красного, до темно-красного. Как я могу это сделать?

Я знаю, что это может быть сделано таким образом, но я считаю, что должна быть более простой способ, чем:

if ($number==10) $color="FFFFFF"; 
elseif ($number==11) $color="FCEFF3"; 
.... 
elseif ($number==50) $color="FF004E"; 
echo "<div style='background-color:#".$color.";font-size:".$number."'px> .... " 

Но в приведенном выше примере проблема заключается длинный размер сценария, потому что размер шрифта может быть от От 10 до 50 или даже от 80, поэтому я подумал, может быть, я могу добавить значения цвета гексагона, чтобы как-то их увеличить?

+1

Использование массива для сопоставления размеров шрифта для цветов будет немного лучше. Но это не устраняет уродство, которое устанавливает стили inline. Вы должны использовать правильно названные классы и применять размер шрифта и фон к ним через CSS. – CBroe

ответ

6

Вы можете просто создать ассоциативный массив цветов, которые вы хотите, и сделать ключ размером шрифта. Затем, вы можете просто ссылаться на цвет из любого $number установлен в:

$number = 11; // Or whatever the font-size is set to 
$backgrounds = array(
    10 => "#FFFFFF", 
    11 => "#FCEFF3", 
    50 => "#FF004E" 
); 

echo "<div style='background-color: ".$backgrounds[$number]."; font-size: {$number}px;'></div>"; 
+0

Спасибо. Это простая и эффективная идея. – Lucas

Смежные вопросы