Я работаю над файлом CSS, который довольно длинный. Я знаю, что клиент мог запросить изменения в цветовой схеме и задавался вопросом: можно ли назначить цвета переменным, чтобы я мог просто изменить переменную, чтобы новый цвет применялся ко всем элементам, которые его используют?
Обратите внимание, что я не могу использовать PHP для динамического изменения файла CSS.
css
variables
colors
css-variables
Патрик
источник
источник
Ответы:
CSS изначально поддерживает это с помощью CSS-переменных .
Пример CSS-файла
Для рабочего примера, смотрите этот JSFiddle (пример показывает, что один из селекторов CSS в скрипте имеет цвет, жестко закодированный в синий, другой селектор CSS использует переменные CSS, как исходный, так и текущий синтаксис, чтобы установить синий цвет) ,
Управление переменной CSS на стороне JavaScript / клиента
Поддержка есть во всех современных браузерах
Firefox 31+ , Chrome 49+ , Safari 9.1+ , Microsoft Edge 15+ и Opera 36+ поставляются с встроенной поддержкой переменных CSS.
источник
Люди продолжают отговаривать мой ответ, но это ужасное решение по сравнению с радостью Sass или менее , особенно с учетом количества простых в использовании графических интерфейсов для обоих этих дней. Если у вас есть смысл, игнорируйте все, что я предлагаю ниже.
Вы можете поместить комментарий в CSS перед каждым цветом, чтобы он служил своего рода переменной, которую вы можете изменить, используя поиск / замену, так что ...
В верхней части файла CSS
Позже в файле CSS
Затем, например, изменить цветовую схему для текста блока, который вы находите / заменяете
источник
Сам CSS не использует переменные. Однако вы можете использовать другой язык, например SASS, для определения стиля с помощью переменных и автоматического создания CSS-файлов, которые затем можно разместить в Интернете. Обратите внимание, что вам придется перезапускать генератор каждый раз, когда вы вносите изменения в свой CSS, но это не так сложно.
источник
Вы можете попробовать CSS3 переменные :
источник
Нет простого решения для CSS. Вы могли бы сделать это:
Найдите все экземпляры
background-color
иcolor
в вашем CSS-файле и создайте имя класса для каждого уникального цвета.Затем перейдите на каждую страницу вашего сайта, где был задействован цвет, и добавьте соответствующие классы для цвета и фона.
Наконец, удалите все ссылки на цвета в вашем CSS, кроме недавно созданных классов цветов.
источник
Дааааааа .... теперь вы можете использовать функцию var ( ) в CSS .. ...
Хорошей новостью является то, что вы можете изменить его с помощью JavaScript- доступа, который также изменится глобально ...
Но как их объявить ...
Все довольно просто:
Например, вы хотите назначить
#ff0000
кvar()
, просто назначить его:root
, а также обратить внимание на--
:Хорошо то, что поддержка браузера неплохая, также не нужно компилировать ее для использования в браузере, например
LESS
илиSASS
...Кроме того, вот простой скрипт JavaScript, который меняет значение красного на синий:
источник
Ruby Gem «Меньше» для CSS выглядит потрясающе.
http://lesscss.org/
источник
Да, в ближайшем будущем (я пишу это в июне 2012 года) вы можете определить собственные переменные CSS, не используя less / sass и т. Д.! Движок Webkit только что реализовал первые правила для переменных css, поэтому передовые версии Chrome и Safari уже работают с ними. Смотрите официальный журнал разработки Webkit (Chrome / Safari) с демонстрационной версией браузера css.
Надеемся, что в ближайшие месяцы мы можем ожидать широкую поддержку браузером собственных переменных CSS.
источник
Не используйте переменные css3 из-за поддержки.
Я хотел бы сделать следующее, если вы хотите чистое решение CSS.
Используйте цветовые классы с семенатическими именами.
Отделить структуру от кожи (OOCSS)
Поместите их в отдельный файл CSS, чтобы изменить при необходимости.
источник
Вы можете пропустить CSS через javascript и заменить все экземпляры COLOUR1 определенным цветом (в основном это регулярное выражение) и предоставить резервную таблицу стилей, если у конечного пользователя JS отключен.
источник
Я не понимаю, почему вы не можете использовать PHP. Затем вы можете просто добавить и использовать переменные по своему усмотрению, сохранить файл как файл PHP и связать этот файл .php как таблицу стилей вместо файла .css.
Это не обязательно должен быть PHP, но вы понимаете, о чем я.
Когда мы хотим что-то программировать, почему бы не использовать язык программирования, пока CSS (возможно) не будет поддерживать такие вещи, как переменные?
Также ознакомьтесь с объектно-ориентированным CSS Николь Салливан .
источник
dicejs.com (формально cssobjs) является клиентской версией SASS. Вы можете установить переменные в своем CSS (хранящемся в CSS в формате json) и повторно использовать переменные цвета.
А вот ссылка на полную загружаемую демоверсию, которая немного более полезна, чем их документация: dicejs demo
источник
Рассмотрите возможность использования SCSS. Он полностью совместим с синтаксисом CSS, поэтому допустимый файл CSS также является допустимым файлом SCSS. Это облегчает миграцию, просто измените суффикс. Он имеет множество улучшений, наиболее полезными из которых являются переменные и вложенные селекторы.
Вам нужно запустить его через препроцессор, чтобы преобразовать его в CSS перед отправкой клиенту.
Я много лет был хардкорным CSS-разработчиком, но с тех пор, как я заставил себя делать проект в SCSS, я больше не буду использовать ничего другого.
источник
Если у вас есть Ruby в вашей системе, вы можете сделать это:
http://unixgods.org/~tilo/Ruby/Using_Variables_in_CSS_Files_with_Ruby_on_Rails.html
Это было сделано для Rails, но см. Ниже о том, как изменить его, чтобы он работал автономно.
Вы можете использовать этот метод независимо от Rails, написав небольшой скрипт-обертку на Ruby, который работает в сочетании с site_settings.rb и учитывает ваши CSS-пути, и который вы можете вызывать каждый раз, когда вы хотите заново сгенерировать свой CSS (например, во время запуска сайта)
Вы можете запустить Ruby практически на любой операционной системе, поэтому она должна быть независимой от платформы.
например, wrapper: generate_CSS.rb (запускайте этот скрипт всякий раз, когда вам нужно сгенерировать ваш CSS)
Затем метод generate_CSS_files в site_settings.rb необходимо изменить следующим образом:
источник
Вы можете группировать селекторы:
источник
Конечно, может, благодаря чудесному миру нескольких классов, сделать это:
но я часто в конечном итоге объединяю их так:
Я знаю, что семантическая полиция будет повсюду, но это работает.
источник
Боюсь, не PHP, но Zope и Plone используют нечто похожее на SASS под названием DTML для достижения этой цели. Это невероятно полезно в CMS.
У Upfront Systems есть хороший пример использования в Plone.
источник
Если вы напишите файл css как шаблон xsl, вы можете прочитать значения цвета из простого файла xml. Затем создайте CSS с процессором xslt.
colors.xml:
styles.xsl:
Команда для рендеринга CSS:
xsltproc -o styles.css styles.xsl colors.xml
styles.css:
источник
Это невозможно только с помощью CSS.
Вы можете сделать это с помощью JavaScript и LESS, используя less.js , который будет переводить переменные LESS в CSS в реальном времени, но он предназначен только для разработки и добавляет слишком много накладных расходов для реального использования.
Самое близкое, что вы можете сделать с CSS, это использовать селектор подстрок атрибута, например так:
и установить
id
S всех ваших элементов , которые вы хотите быть отрегулированы с именами , начиная сcolvar-
, напримерcolvar-header
. Затем при изменении цвета все стили идентификатора обновляются. Это так близко, как вы можете получить только с помощью CSS.источник