Version: Unity 6.0 (6000.0)
言語 : 日本語
疑似クラス
USSプロパティ

セレクターの優先順位

ある要素が複数のセレクターに一致する場合、Unity はいくつかの要因を考慮してどのセレクターを優先するかを決定します。

Unity がどのように優先順位を決定するかは、競合するセレクターが同じスタイルシートにあるか、異なるスタイルシートにあるかによって異なります。

同じスタイルシート内のセレクターの優先順位

ある要素が同じスタイルシートの複数のセレクターに一致する場合、最も高い 詳細度 を持つセレクターが優先されます。

両方のセレクターが同じ 詳細度 を持つ場合、USS ファイルで最後に表示されるセレクターが優先されます。

異なるスタイルシート内のセレクターの優先順位

ある要素が異なるスタイルシートの複数のセレクターに一致する場合、Unity は以下の順で優先順位を決定します。

  1. スタイルシートのタイプ: ユーザー定義のスタイルシートのセレクターは、Unity のデフォルトのスタイルシートのセレクターよりも優先されます。
  2. セレクターの詳細度: 両方のセレクターが同じタイプのスタイルシートにある場合、詳細度 が最も高いセレクターが優先されます。
  3. 要素階層内のスタイルシートの位置: 両方のセレクターが同じ詳細度を持つ場合、スタイルシートが要素階層内で最も低い位置にあるセレクターが優先されます。
  4. スタイルシート内のセレクターの位置: 同じ階層レベルにある複数のスタイルシートを適用する場合、USS ファイルでより最後のほうに表示されるセレクターが優先されます。

セレクターの詳細度

セレクターの詳細度は、関連性の指標です。詳細度が高いほど、セレクターと一致する要素との関連性が高いことを意味します。

  • 名前 セレクターは クラス セレクターよりも詳細度が高いです。
  • クラス セレクターは セレクターよりも詳細度が高いです。
  • セレクターは ユニバーサル (*) セレクターよりも詳細度が高いです。
  • ユニバーサル セレクターは、最も詳細度が低くなります。

スタイルのオーバーライド

UI Toolkit では、要素のスタイル設定に以下の方法を使用します。

  • USS ファイルに、要素に影響を与えるセレクターを記述します。
  • 要素が定義されている UXML ドキュメントで、インラインスタイルを設定します。
  • C# スクリプトで、要素への参照を取得してインラインスタイルを設定 します。
  • 継承プロパティの場合、要素は親要素から値を取得します。

要素に複数のスタイルメソッドを適用すると、スタイルがオーバーライドされます。

適用スタイルは継承スタイルをオーバーライドする

たとえ、継承したスタイルがより高い特殊性を持つセレクターで定義されていても、要素を直接ターゲットにしたスタイルは、その要素が継承したスタイルよりも優先されます。

インラインスタイルは USS スタイルをオーバーライドする

UXML ドキュメント内で要素に適用するインラインスタイルは、USS スタイルよりも優先されます。これらは、USS セレクターよりも高い詳細度を持ちます。

注意USS は、CSS でスタイル宣言のオーバーライドに使用される !important 規則をサポートしていません。

C# スタイルはインラインスタイルと USS スタイルをオーバーライドする

C# スクリプトで設定したスタイルは、UXML ドキュメントで設定した USS スタイルやインラインスタイルをオーバーライドします。これらは最も高い詳細度を持ちます。

追加リソース

疑似クラス
USSプロパティ