Version: Unity 6.0 (6000.0)
语言 : 中文
伪类
USS 属性

选择器优先级

当一个元素匹配多个选择器时,Unity 会考虑几个因素来确定哪个选择器优先。

Unity 如何确定优先级取决于冲突的选择器是在同一个样式表中还是在不同的样式表中。

同一样式表中选择器的优先级

如果一个元素匹配同一样式表中的多个选择器,则具有最高特异性的选择器优先。

如果两个选择器具有相同的特异性,USS 文件中最后出现的选择器优先。

不同样式表中选择器的优先级

当一个元素匹配不同样式表中的多个选择器时,Unity 会根据以下因素按此顺序确定优先级:

  1. 样式表的类型:来自用户定义样式表的选择器优先于来自默认 Unity 样式表的选择器。
  2. 选择器特异性:如果两个选择器都在同一类型的样式表中,则具有最高特异性的选择器优先
  3. 样式表在元素层级结构中的位置:如果两个选择器具有相同的特异性,则其样式表在元素层级结构中最低位置被应用的选择器优先。
  4. 选择器在其样式表中的位置:如果在层级结构的同一级别应用两个样式表,则最靠近其 USS 文件末尾的选择器优先。

选择器特异性

选择器特异性是相关性的度量。特异性越高,选择器与其匹配的元素越相关。

  • 名称选择器比选择器特异性高。
  • 选择器比类型选择器特异性高。
  • 类型选择器比通用 (*) 选择器特异性高。
  • 通用选择器的特异性最低。

样式覆盖

您可以通过以下方式在__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary
工具包中设置元素的样式:

如果将多种样式方法应用于元素,则会对其进行样式覆盖。

应用样式覆盖继承样式

直接针对元素的样式优先于元素继承的样式,即使继承的样式是在具有更高特异性的选择器中定义的。

内联样式覆盖 USS 样式

应用于 UXML 文档中元素的内联样式优先于 USS 样式。它们比 USS 选择器具有更高的特异性。

注意:USS 不支持用于覆盖 CSS 中的样式声明的 !important 规则。

C# 样式覆盖内联和 USS 样式

在 C# 脚本中设置的样式会覆盖 UXML 文档中设置的 USS 样式和内联样式。它们具有最高的特异性。

其他资源

伪类
USS 属性