在Drupal中有选择地删除样式表以获取页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Drupal中有选择地删除样式表以获取页面相关的知识,希望对你有一定的参考价值。

我正在尝试为首页制作不同的布局。在那个过程中,我声明了名为“front-page.css”的新样式表和page - front.tpl.php。我正在使用一个Zen subtheme来加载responsive-sidebar.css。我想删除“responsive-sidebar.css”并加载“front-page.css”。我这样做的原因是因为后面样式表中的研磨列数与前者不同。

我不想使用Panels模块。我正在使用Drupal 7。

答案

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']);
}

该钩子可以在模块或主题中实现。

另一答案

在你的主题template.php文件和template_preprocess_page($vars)里面,找到你要在$vars['stylesheets']中删除的CSS文件,并使用PHP的unset函数将其从$vars['stylesheets']数组中删除。

另一答案

我刚刚找到了更好的方法来做到这一点。它有点hacky,但允许在几乎任何地方取消设置css:

$css = &drupal_static('drupal_add_css', array());
unset($css['some_css_path']);

以上是关于在Drupal中有选择地删除样式表以获取页面的主要内容,如果未能解决你的问题,请参考以下文章

drupal 页面排版。功能方面己实现了。想模仿某个网站的样式。怎么做。

使用不同的页眉和页脚在Drupal上创建页面

Drupal 7 新的自定义模板

如何在 drupal 7 站点中创建不同的页面样式?

PHP 从Drupal节点中删除样式标记

从Drupal6中删除不需要的样式表