CSS внутри моего PHP-файла

#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.