我已将以下css文件包含在my_theme.info文件中
stylesheets[all][] = style.css
stylesheets[all][] = css/all.css
stylesheets[all][] = css/static.css
并且这些文件正在每个页面上加载,但我的特定css文件与页面相关联在上面的css文件之前加载。 但我希望上面的css文件应首先加载然后我的页面css文件加载 我为此做了什么?
答案 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文件