ある要素が複数のセレクターに一致する場合、Unity はいくつかの要因を考慮してどのセレクターを優先するかを決定します。
Unity がどのように優先順位を決定するかは、競合するセレクターが同じスタイルシートにあるか、異なるスタイルシートにあるかによって異なります。
ある要素が同じスタイルシートの複数のセレクターに一致する場合、最も高い 詳細度 を持つセレクターが優先されます。
両方のセレクターが同じ 詳細度 を持つ場合、USS ファイルで最後に表示されたセレクターが優先されます。
ある要素が異なるスタイルシートの複数のセレクターに一致する場合、Unity は以下の要因に応じて優先順位を決定します。
セレクターの詳細度は、関連性の指標です。詳細度が高いほど、セレクターが一致する要素との関連性が高いことを意味します。
*
) セレクターよりも詳細です。UI Toolkit では、以下のように要素にスタイルを設定できます。
要素に複数のスタイリングメソッドを適用する場合、スタイルのオーバーライドを受けます。
たとえ、継承したスタイルがより高い詳細度を持つセレクターで定義されていても、要素を直接ターゲットにするスタイルは、その要素が継承したスタイルよりも優先されます。
UXML ドキュメント内の要素に適用するインラインスタイルは、USS スタイルよりも優先されます。それらは、USS セレクターよりも高い詳細度を持ちます。
ノート: USS は、CSS のスタイル宣言をオーバーライドするために使われる !important
ルールをサポートしていません。
C# スクリプトで設定したスタイルは、UXML ドキュメントで設定した USS スタイルやインラインスタイルをオーバーライドします。これらは最も高い詳細度を持ちます。