2

JavaFX CSS で頻繁に使用される色に変数を割り当て、色定数ではなく変数を参照することにしました。

* {
    theme-backgroundDark: #335588;
}

#messageListPane {
    -fx-background-color: theme-backgroundDark;
}

ここで、色変数名を定義するブロックを取得し、それを別の .css ファイルに移動します。これにより、実行時にさまざまな .css ファイルを交換して、アプリケーションのテーマを変更できます。

Theme1.css

* {
    theme-backgroundDark: #335588;
}

メイン.css

@import url( "/styles/Theme1.css" );

#messageListPane {
    -fx-background-color: theme-backgroundDark;
}

しかし、これを行うと、JavaFX は実行時に変数を見つけることができません。

WARNING: Could not resolve 'theme-backgroundDark' while resolving lookups for '-fx-background-color' from rule '*#messageListPane ' in stylesheet file:/C:/xxxx/styles/Main.css

@importステートメントの問題ではありません。クラス セレクターを定義する他@importの があり、それらは でうまく取得されMain.cssます。ワイルドカードセレクターと関係があるようです* { ... }

では、ワイルドカード セレクターの名前付きカラー変数が同じ CSS では機能するのに、別の CSS からインポートした場合は機能しないのはなぜでしょうか?

4

1 に答える 1