Drupal 7:重新排序css文件

时间:2013-12-25 07:13:22

标签: php drupal-7

我已将以下css文件包含在my_theme.info文件中

stylesheets[all][] = style.css
stylesheets[all][] = css/all.css
stylesheets[all][] = css/static.css

并且这些文件正在每个页面上加载,但我的特定css文件与页面相关联在上面的css文件之前加载。 但我希望上面的css文件应首先加载然后我的页面css文件加载 我为此做了什么?

1 个答案:

答案 0 :(得分:4)

默认情况下,主题的css文件(在mytheme.info文件中设置)最后加载,并且在任何模块的任何其他css文件之后加载。这样做是为了在需要时覆盖任何css。

因此,如果你想加载 之前的css文件,你应该更好地在自定义模块中添加drupal_add_css功能并设置它们的重量为-100或更少(数字只是订单权重的一个例子)。

要获取路径,您可以使用current_path()drupal_get_path_alias()(用于别名)或任何其他函数/方法来获取路径。

但是,正如你所说,这些是主题css文件所以在你的自定义模块中你也可以在你的模块中写这个:

function mymodule_init() {
    // Set theme's path
  $themepath = drupal_get_path('theme', 'mytheme');

  // check current path
    if (current_path() == "internal/path/of/the/page") {
    // add theme css in group CSS_SYSTEM
    drupal_add_css($themepath . '/path/to/mycss.css', array('group' => CSS_SYSTEM, 'type' => 'file', 'weight' => -100));
  }
}

上面的代码会将mycss.css文件移动到组“CSS_SYSTEM”,它首先加载核心css文件,然后从模块(CSS_DEFAULT)或主题(CSS_THEME)中加载任何其他css文件