Я пытаюсь создать код, который генерирует случайный цвет фона при загрузке страницы, но также выводит текст с цветом, зависящим от цвета фона. Например, если цвет фона темный, текст будет отображаться светлым.
До сих пор я создал следующее, которое работает, хотя я не уверен, что это лучший способ добиться этого.
Я создал массив, который случайным образом определяет, должен ли цвет фона быть светлым или темным, и сделал это, чтобы иметь два альтернативных цвета шрифта на основе схемы $. Я уверен, что будет гораздо более динамичный способ сделать это?
Затем я установил еще два массива, в которых перечислены несколько цветов для темной и светлой схем, с оператором elseif для вывода соответствующего CSS.
Есть несколько вещей об этом, которые я хотел бы запросить:
1) почему последняя строка в массиве никогда не выводится? это делает так, что я должен добавить пустую строку в каждый массив, чтобы предыдущая не была пропущена.
2) как лучше всего это сделать, а также какой самый динамичный метод.
<?php
header("Content-type: text/css; charset: UTF-8");
$input = array("dark", "light", "");
$rand_keys = array_rand($input, 2);
$scheme = $input[$rand_keys[0]];
if ($scheme == "dark") {
$darkBg = array('212a34', '383838', '000');
$rand_keys_1 = array_rand($input, 2);
$bg_colour = $darkBg[$rand_keys_1[0]];
echo 'body {background-color:#' . "$bg_colour" . '}';
echo 'h2 { color:#fff; }';
}
elseif ($scheme == "light") {
$lightBg = array('ebecee', '31a989', 'fff');
$rand_keys_2 = array_rand($input, 2);
$bg_colour = $lightBg[$rand_keys_2[0]];
echo 'body {background-color:#' . "$bg_colour" . '}' ;
echo 'h2 { color:#000; }';
}
else { echo 'body {background-color: #ef3c39;}'; }
?>
// Вероятно, следовало бы отметить, что это будет предопределенный список цветов