Создание темы для Drupal 6. Переопределение стилей

Аватар пользователя artur.baranok
Опубликовано вт, 07/14/2015 - 12:55 пользователем artur.baranok
Форумы: 

Стандартные и дополнительные модули могут содержать свои стили, которые определяют оформление тех данных, которые генерируют эти модули. Для переопределения этих стилей, их не следует редактировать напрямую в тех папках, где они находятся. Следует скопировать эти файлы в папку темы и переопределить эти файлы в .info-файле темы.

Возьмём для примера файл system-menus.css, который можно найти по адресу modules/system/system-menus.css. Для того, чтобы этот файл игнорировался, следует добавить в .info-файл темы следующую запись:

stylesheets[all][] = system-menus.css

При наличии такой записи, файл system-menus.css будет браться из папки темы, т.к. при совпадении названий файлов, Drupal будет отдавать предпочтение тому, который определён явно. При переопределении стилей, учитывайте следующие моменты:

  • Добавление любой записи в секцию stylesheet[] отменит правила используемые по умолчанию
  • При переопределении файлов, должен совпадать их медиатип. Если медиатип не совпадает, то определяемый файл будет считаться другим файлом и переопределения не произойдёт
  • Любая ссылка в файле стилей должна быть корректной. Дважды проверьте файл для свойства url() или правила @import, чтобы убедиться, что они указывают на верные ресурсы
  • Порядок стилей в HTML-секции может измениться. Это может вызвать неожиданный эффект из-за каскадности применения стилей
  • Некоторые стили стандартных и дополнительных модулей могут загружаться в зависимости от условий. Определение их явной загрузки в .info-файле принудит их загружаться всегда
  • Если требуются незначительные изменения, подумайте об использовании CSS-селекторов в основном файле, а не переопределение всего файла полностью.
  • Изменение записей в .info-файле требует очистки его кеша.

Переопределение стиля базовой темы

Этот параграф относится к подтемам. Чтобы предотвратить перенос стилей от базовой темы в подтему, переопределяйте стили в .info-файле подтемы. Базовая тема и подтемы должны иметь следующую запись:

stylesheets[all][] = masterStyle.css

Если этот файл существует в подтеме, то он будет использоваться. Определение этого файла в подтеме необходимо для того, чтобы предотвратить его загрузку из базовой темы.