如何摆脱Drupal CSS样式表?
我正在努力做到以下几点。我需要使用Drupal6作为项目需求,但我希望将它与每个节点/视图/面板等的HTML和CSS样式表一起使用 问题是,无论主题是什么,我总是发现Drupal应用于我的HTML内容,包括我的CSS样式表和与所选主题相关的CSS。我也尝试过使用stylestripper模块(安装在sites/all/modules中),但没有成功。无论我做什么,附加的CSS样式表都会应用到我的页面上,完全破坏了我的布局 实现这一目标的正确方法是什么?为什么stylestripper根本不起作用?是否有一个完全空白的主题可用?我尝试过basic、mothership、zen等,但我总是看到其他CSS样式表应用到我的页面上 这让我抓狂,Drupal因为其灵活性而被其他人选中。 先谢谢你如何摆脱Drupal CSS样式表?,drupal,drupal-6,drupal-modules,drupal-themes,Drupal,Drupal 6,Drupal Modules,Drupal Themes,我正在努力做到以下几点。我需要使用Drupal6作为项目需求,但我希望将它与每个节点/视图/面板等的HTML和CSS样式表一起使用 问题是,无论主题是什么,我总是发现Drupal应用于我的HTML内容,包括我的CSS样式表和与所选主题相关的CSS。我也尝试过使用stylestripper模块(安装在sites/all/modules中),但没有成功。无论我做什么,附加的CSS样式表都会应用到我的页面上,完全破坏了我的布局 实现这一目标的正确方法是什么?为什么stylestripper根本不起作用
<?php
/**
* Helper function to allow easy CSS excludes + includes
*/
function _phptemplate_get_css($exclude = array(), $include = array()){
$css = drupal_add_css();
foreach ($css['all']['module'] as $k => $path) {
$file = substr($k, strrpos($k, '/') + 1);
if (in_array($file, $exclude)){
unset($css['all']['module'][$k]);
}
}
foreach ($include as $file){
$css['all']['theme'][path_to_theme() .'/'. $file] = true;
}
return drupal_get_css($css);
?>
我相信你知道怎么把他们都排除在外;) 我不认为这会起作用,但我认为只需删除主题的page.tpl.php中的以下行即可
这样drupal就不会有自己的风格了。这可能对你有用。
Nitz
如果使用与核心文件匹配的文件名在主题的.info文件中定义CSS和/或JavaScript文件,则覆盖它们,如果覆盖不存在,则不包括它们
谢谢,这看起来很完美。您能否添加实际使用该功能所需的缺少的详细信息?我应该将函数放在哪个文件中?如何调用它来排除所有CSS样式表?太好了!这正是我要找的!谢谢分享!
function YOUR_THEME_preprocess(&$vars, $hook){
// Stylesheet filenames to be excluded.
$css_exclude_list = array(
'lightbox.css',
'lightbox_lite.css',
);
// Making use of previously defined helper function.
$vars['styles'] = _phptemplate_get_css($css_exclude_list);
}
<?php echo $styles ?>