我正在尝试为首页制作不同的布局。在那个过程中,我声明了名为“front-page.css”的新样式表和page - front.tpl.php。我正在使用一个Zen subtheme来加载responsive-sidebar.css。我想删除“responsive-sidebar.css”并加载“front-page.css”。 我这样做的原因是因为后面的样式表中的研磨列数与前者不同。
我不想使用Panels模块。我正在使用Drupal 7。
答案 0 :(得分:2)
在主题的template.php
文件内和template_preprocess_page($vars)内,找到要在$vars['stylesheets']
内删除的CSS文件,并使用PHP的unset
函数将其从$vars['stylesheets']
中移除{1}}数组。
答案 1 :(得分:2)
Drupal 7方式是使用hook_css_alter()
:
function MYMODULE_css_alter(&$css) {
// Remove defaults.css file. The path will probably change for your theme obviously.
unset($css[drupal_get_path('theme', 'MYTHEME') . '/css/responsive-sidebar.css']);
}
该钩子可以在模块或主题中实现。
答案 2 :(得分:0)
我发现了更好的方法。它有点hacky,但允许在几乎任何地方取消设置css:
$css = &drupal_static('drupal_add_css', array());
unset($css['some_css_path']);
答案 3 :(得分:0)
Drupal 8路。也许它可以在Drupal 7中使用。要删除特定/特定页面上的样式表,您需要:
function MYTHEME_css_alter(&$css) {
// Get me path:
$current_path = \Drupal::service('path.current')->getPath();
$result = \Drupal::service('path.alias_manager')->getAliasByPath($current_path);
if ($result == 'your/path' ){
unset($css[drupal_get_path('theme', 'THEMENAME') . '/css/style.css']);
}
}
它在D8中对我有用,可以放在.theme或.module中。您需要删除所有缓存(或模块缓存)。