Php Drupal7:重新排列css文件

Php Drupal7:重新排列css文件,php,drupal-7,Php,Drupal 7,我已将以下css文件包含到我的_theme.info文件中 stylesheets[all][] = style.css stylesheets[all][] = css/all.css stylesheets[all][] = css/static.css 每个页面上都会加载这些文件,但我的特定css文件与页面相关,是在上面的css文件之前加载的。 但是我想上面的css文件应该先加载,然后再加载我的页面css文件 为此我做了什么?默认情况下,主题的css文件(如mytheme.info文件中

我已将以下css文件包含到我的_theme.info文件中

stylesheets[all][] = style.css
stylesheets[all][] = css/all.css
stylesheets[all][] = css/static.css
每个页面上都会加载这些文件,但我的特定css文件与页面相关,是在上面的css文件之前加载的。 但是我想上面的css文件应该先加载,然后再加载我的页面css文件
为此我做了什么?

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

因此,如果您想在加载css文件之前加载任何其他文件,最好在自定义模块中使用函数添加css文件,并将其权重设置为-100或更小(数字只是订单权重的一个示例)

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

但是,正如您所说,这些是主题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\u SYSTEM”,该组首先加载核心css文件,然后再加载模块(css\u默认值)或主题(css\u主题)中的任何其他css文件。

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

因此,如果您想在加载css文件之前加载任何其他文件,最好在自定义模块中使用函数添加css文件,并将其权重设置为-100或更小(数字只是订单权重的一个示例)

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

但是,正如您所说,这些是主题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\u SYSTEM”,该组首先加载核心css文件,然后再从模块(css\u默认)或主题(css\u主题)加载任何其他css文件

为什么不在为特定页面添加css时使用
weight
属性并赋予其更高的权重值?特定css文件与页面的关联程度如何?如果我的页面为,则css文件为all-tools.css。此文件在style.css、css/all.css、css/static.css之前加载。我希望在每个页面上首先包含my_them.info中包含的css文件为什么不在为特定页面添加css时使用
weight
属性并为其指定更高的权重值?特定css文件与页面有何关联?如果我的页面是,而该页面的css文件是all-tools.css,则在加载之前加载此文件style.css、css/all.css、css/static.css。我希望我的_them.info中包含的css文件应该首先包含在每个页面上