Довольно часто, когда я создаю веб-сайт для клиента, я создаю его веб-сайт с одним (или несколькими) CSS файлами, которые составляют весь уровень представления. Дело в том, что, как правило, клиенту необходимо радикально изменить понятия "веб-сайт". Он может в конечном итоге попросить меняться от темы с синим/зеленым цветом на красный/оранжевый, основанный на его вкусах. Дело в том, что мой файл содержит всю информацию, включая:
- расположение элементов
- фоновые изображения контейнеров
- размер шрифта, цвет
Каковы наилучшие методы для "развязывания" CSS файла, чтобы сделать его "темным", сохраняя всю свою информацию о позиционировании?
Мой список возможных практик заключается в следующем:
- Используйте файл CSS по умолчанию, содержащий общую информацию и позиционирование, используйте дочерние CSS файлы, которые реализуют только фоновые изображения, размеры шрифтов и цвета.
- Назовите свой первый файл CSS (скажем, синий/зеленый будет называться "небо" ). Внесите еще одну тему, основанную на небе, переопределяя любые атрибуты CSS, необходимые для изменения темы и назовите ее (например, красный/оранжевый будет "малиновый" ).
EDIT: в соответствии с замечательными ответами, приведенными ниже, я обновил список других возможных решений, добавляющих в свой список:
- Используйте SASS, (наилучшим образом с Compass @see Andrew Vit), в частности, их функция "Миксинс". Он использует CSS и вводит очень суровый программный подход. Вы можете переопределить существующие классы. - treefrog
- Используйте OOCSS. - Эндрю Вит
- Метод, называемый независимые блоки (статья на русском языке), который имитирует тип пространства имен с использованием префикса класса для разделения определенных блоков. - angryobject
- Три таблицы стилей. Разделите типографику, положение и таблицу стилей reset, предоставленную Эрик Мейер. - Дэвид Томас
- Использовать уже стандартизированные подходы, используемые известными организациями, такими как библиотека Dojo, пользовательский интерфейс jQuery и т.д.
- S.Jones
Что было бы лучше в случае возможного случая? Есть ли другие легко поддерживаемые и гибкие способы?
Лучший ответ на сегодняшний день: использование SASS для создания очень гибких таблиц стилей. Конечно, это подразумевает небольшую кривую обучения, но, согласно нескольким отзывам, SASS, похоже, является следующим подходом для динамических таблиц стилей (наряду с HAML).