как отключить системные CSS-файлы drupal7? - PullRequest
3 голосов
/ 04 января 2012

Я создал новый вид и изменил некоторые стили в view.css.Но когда я загружаю страницу, мои стили переопределяются на style.css и system.theme.css.

Есть ли способ установить мой css "перед" системным css?

Ответы [ 7 ]

4 голосов
/ 02 ноября 2012

Добавьте в файл template.php вашей темы:

function THEMENAME_css_alter(&$css) {
    unset($css[drupal_get_path('module','system').'/system.theme.css']);
    unset($css[drupal_get_path('module','system').'/system.base.css']);
    unset($css[drupal_get_path('module','system').'/system.menus.css']);
}

Это довольно экстремальный вариант.Во многих случаях вы можете просто переопределить более конкретный CSS, как предлагает Рори.Или используйте комбинацию методов.

решение из: http://drupal.org/node/592636#comment-4370580

2 голосов
/ 25 ноября 2012

Большую часть времени я нахожу стили CSS в Drupal ужасно уродливыми и совершенно бессмысленными с точки зрения современного веб-дизайна. Если вас интересуют лучшие практики, лучше всего удалить их все в теме и перестроить, используя что-то вроде Bootstrap или что-то, что не было написано восемь лет назад.

1 голос
/ 12 апреля 2013

Вот правильный способ переопределить системные CSS-файлы.

  1. Скопируйте все .css файлы из /modules/system в каталог вашей темы.

  2. Добавьте следующее в файл *.info в каталоге вашей темы:

; Override system css
stylesheets[all][] = css/system.admin.css
stylesheets[all][] = css/system.admin-rtl.css
stylesheets[all][] = css/system.base.css
stylesheets[all][] = css/system.base-rtl.css
stylesheets[all][] = css/system.maintenance.css
stylesheets[all][] = css/system.menus.css
stylesheets[all][] = css/system.menus-rtl.css
stylesheets[all][] = css/system.messages.css
stylesheets[all][] = css/system.messages-rtl.css
stylesheets[all][] = css/system.theme.css
stylesheets[all][] = css/system.theme-rtl.css
1 голос
/ 04 января 2012

Лучший способ - сделать ваши селекторы более точными, чем селекторы по умолчанию в CSS для drupal.Самый простой способ - поместить класс или идентификатор на ваше тело.

Например:

A {
    color: #F00;
}

#container A { 
    color: #0F0; /* this will be used as the selector is more precise */
}

В противном случае вы можете использовать модификатор !important в своих правилах, но это можетвызвать проблемы позже, если они должны быть также overidden.

A {
    color: #0F0 !important;
}
0 голосов
/ 06 августа 2015

Существует модуль для более простого и легкого управления CSS и JS без какого-либо кодирования и использования theme.info, включая замену, удаление, фильтрацию системных и основных модулей CSS и JS-файлов и многое другое. https://www.drupal.org/project/css_js_total_control

0 голосов
/ 06 января 2012

Если вы чувствуете себя смелым, вы можете скопировать style.css в папку вашей темы и переписать ее.Или просто сбросьте его из вашего файла .info.Это ядерный вариант, но он хорош, если вы хотите ИТОГО контролировать или применить какую-то радикальную простоту.Если вы сделаете это, вы почти наверняка захотите использовать другую тему для задач администратора, так как стилизация admin css - это бессмысленная трата времени для большинства из нас.

0 голосов
/ 04 января 2012

Стили CSS применяются в порядке загружаемых файлов. Таким образом, вы можете либо переместить объявление вашего view.css после style.css, либо перейти к стилям, которые вы хотите быть первыми в порядке добавления! Важный пример:

.wrap
{
 width:960px !important;
}
...