web-dev-qa-db-ja.com

特定のページから特定のスタイルシートを削除する

特定のページにスタイルシートを追加するのは簡単です。hook_preprocess_page()を実装し、drupal_add_css(...)を呼び出して$vars['styles'] = drupal_get_css()を設定します。


しかし、キャッシュシステムに干渉することなく、特定のページのremoveスタイルシート(または私の場合は、すべての「media = screen」スタイルシート)に適切な方法は何ですか? (たとえば、一部の正規表現は出力に適用されません)

この時点で_$vars['styles']_はすでに生成されており、unset($vars['css']['screen'])関数が存在しないため、drupal_remove_css()だけを実行することはできません。

5
wildpeaks

これはhook_preprocess_page()で最もクリーンな方法のようです:

$css = drupal_add_css();
unset( $css['screen'] );
$vars['styles'] = drupal_get_css($css);
8
wildpeaks