#php #css #variables #external
#php #css #переменные #внешний
Вопрос:
Хорошо, итак, я смог определить стандартный цвет текста в соответствии со значением базы данных, используя этот код:
<?php
echo '<div style="color: ' . $result->properties->fcolor . ';';<br />
echo 'background: ' . $result->properties->bgcolor;<br />
echo '">MY CONTENT</div>'
?>
Цвет, который задается
$results->properties->fcolor
работает отлично, за исключением a:link
, a:hover
a:visited
и a:active
. Поскольку он определяет только «цвет», браузеры по умолчанию используют свои собственные цвета ссылок.
Мои пользователи выбирают из множества цветов фона и шрифта, а синий цвет ссылки Chrome по умолчанию точно не работает с темно-фиолетовым фоном… Возможно ли настроить
<style type=text/css>
внутри моего PHP-файла и пусть он ссылается на
$result->properties->fcolor
значение, которое обычная часть скрипта извлекает из моей базы данных?
Это мой первый большой сайт, поэтому я ни в чем не уверен, но я смутно помню, что включил PHP во внешнем CSS-файле с помощью .htaccess, и он не смог успешно ввести значение
$result->properties->fcolor
насколько я мог судить.
Что я делаю не так?
Заранее спасибо — здесь потрясающее сообщество! 🙂
Комментарии:
1. Кстати, такое поведение не имеет ничего общего с php. Вы можете просто использовать статический html-файл со стилями, чтобы посмотреть, как ведет себя браузер и какие у браузера стили (firebug / chrome inspector еще лучше, вы можете изменять значения на лету). PHP просто собирает эти html / css-файлы.
2. @ibu Нет, я добавил это, чтобы было легче читать (эхо-сигналы легко сбивают с толку, если нет разрывов строк)…
3. @Janis Veinbergs Я не уверен, что понимаю, что вы пытаетесь сказать, но если я вас правильно расслышал, я это уже знаю 🙂 Проблема заключается в том, чтобы поместить значение $result-> properties-> fcolor (которое далеко от статического) в файл CSS (внутренний или внешний). Дайте мне знать, если я вас просто неправильно понял 🙂
4. @tylerl — Я просто хотел узнать, если стиль вашей страницы выглядит не так, как должен, вы можете отладить его, используя статические файлы html / css, пока не получите желаемый стиль для вашей страницы. Оттуда вы знаете, какие значения и где должны быть установлены $result-> properties-> fcolor.
5. @Janis Veinbergs О, спасибо 🙂 Жизнь намного проще с инспектором Chrome 🙂 Теперь я вижу проблему, из-за которой количество пробелов под моим нижним колонтитулом имитирует высоту содержимого внутри моих тегов <div>, а Chrome не показывает, в чем проблема! Теперь я не знаю, что делать: P
Ответ №1:
НА вашем месте я бы создал внешний css для ссылок просто для определения правил, а не цвета.
например, если ваши ссылки находятся внутри div, что вы можете сделать, это просто определить, использовать ли цвет div
div a { color: inherit; }
div a:HOVER { color: inherit; }
итак, когда вы определяете свой цвет для div с помощью логики php, ваши ссылки внутри div наследуют этот цвет.
Если у вас возникнут какие-либо проблемы с этим, добавьте important в свойство, чтобы использовался цвет div
div a {color: inherit !important; }
Комментарии:
1. Ой-ой… Я только что на собственном горьком опыте убедился, что IE6 и IE7 не поддерживают унаследованные цвета! Большинство моих пользователей находятся на нижней границе компьютерного спектра, поэтому мне нужно, чтобы IE6 / 7 поддерживался как можно больше : (Добавление
important!
ничего не изменило, так как еще я могу сказать IE игнорировать его локальные значения для цветов ссылок? Или на самом деле возможно ссылаться$result->properties->fcolor
во внутреннем или внешнем CSS? Я просто делал это неправильно раньше? Спасибо за помощь!2. поставьте восклицательный знак перед important, а не в конце, и задайте цвет, который вы хотите использовать 🙂 не наследуйте его.
Ответ №2:
Вы можете настроить цвета ссылок с помощью внутреннего css
<style type="text/css">
a:link { color:#f00;}
a:visited { color : }
a:hover {}
a:active { }
</style>
Примечание:
1 заказы очень важны.
2 используйте шестнадцатеричное значение вместо названия цвета.
Комментарии:
1. Я попробовал это, заменив ‘#f00’ на ‘<?php echo $ result-> properties-> fcolor ?>’, и это не сработало : (
Ответ №3:
Привет, вы пробовали использовать «вместо’ и » вместо»?
echo "<div style="color: " . $result->properties->fcolor . ";";
echo "background: " . $result->properties->bgcolor;
echo "">MY CONTENT</div>";
И, похоже, вам не хватает точки с запятой в вашем 3-м echo.