Стандартные и дополнительные модули могут содержать свои стили, которые определяют оформление тех данных, которые генерируют эти модули. Для переопределения этих стилей, их не следует редактировать напрямую в тех папках, где они находятся. Следует скопировать эти файлы в папку темы и переопределить эти файлы в .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
Если этот файл существует в подтеме, то он будет использоваться. Определение этого файла в подтеме необходимо для того, чтобы предотвратить его загрузку из базовой темы.