Version: 6000.3
语言: 中文
选择器列表
选择器优先级

伪类

伪类缩小了选择器的范围,因此它仅在元素进入特定状态时才匹配它们。

将伪类附加到简单选择器,以便在特定元素处于特定状态时匹配它们。例如,以下 USS 规则使用:hoverpseudo-class 来更改Button当用户将指针悬停在元素上时,元素。

Button:hover {
    background-color: palegreen;
}
一个 Unity 编辑器窗口,其中包含绿色的“确定”按钮和一个空白复选框。
一个 Unity 编辑器窗口,其中包含绿色的“确定”按钮和一个空白复选框。

您可以设置和获取元素的伪状态。有关示例,请参阅检查控件的伪状态

支持的伪类

下表列出了支持的伪类。无法扩展伪类或创建自定义类。

伪类 匹配元素
:hover 光标位于元素上方。
:active 用户与元素交互。
:inactive 用户停下来与元素交互。
:focus 元素有焦点。
:selected USS 不支持这种伪状态。 用:checked相反。
:disabled 该元素处于禁用状态。
:enabled 元素处于启用状态。
:checked 该元素是一个切换 允许用户打开或关闭选项的复选框。更多信息
请参阅术语表
RadioButton 元素,并将其选中。
:root 该元素是可视化树由轻量级节点组成的对象图,用于保存窗口或面板中的所有元素。它定义了使用 UI 工具包构建的每个 UI。
请参阅术语表
应用了样式表。

链伪类

您可以将伪类链接在一起,以便为多个并发状态应用相同的样式。例如,以下 USS 规则将:checked:hover伪类一起更改选中颜色Toggle当用户将指针悬停在元素上时,元素。

Toggle:checked:hover {
  background-color: yellow;
}
带有“确定”按钮的 Unity 编辑器窗口,以及带有鼠标光标的黄色突出显示复选框。
带有“确定”按钮的 Unity 编辑器窗口,以及带有鼠标光标的黄色突出显示复选框。

如果选中切换,但指针未悬停在其上,则选择器不再匹配。

带有“确定”按钮的 Unity 编辑器窗口,以及一个没有突出显示的复选框。
带有“确定”按钮的 Unity 编辑器窗口,以及一个没有突出显示的复选框。

根伪类

:rootpseudo-class 匹配应用样式表的最高级别元素。

使用根伪类设置默认值

您可以使用:rootpseudo-class 为跨元素的继承样式设置默认样式值。要查看继承了哪些 USS 属性,请参阅 USS 属性参考

例如,以下 USS 规则设置默认字体。如果将样式表应用于可视化树中的根元素,则任何未从更具体的样式规则获取其字体的元素都将使用该字体。

:root {
  -unity-font: url("../Resources/fonts/OpenSans-Regular.ttf");
}

将自定义属性与根伪类一起使用

的常见用途:root伪类是声明“全局”变量(自定义属性),其他样式规则可以使用该变量来代替特定值。例如,您可以为颜色定义自定义属性并在其他规则中使用它:

:root {
  --my-color: #ff0000;
}

Button {
  background-color: var(--my-color);
}

根伪类匹配

在 CSS 中,:rootpseudo-class 匹配根元素,即<HTML>. 在 USS 中,它可以是根元素或可视化树中的任何其他元素。它与其他元素或该元素的子元素不匹配。

例如,如果您有以下层次结构:

var myElement = new VisualElement();
var myElementChild = new VisualElement();
myElement.Add(myElementChild);

var myOtherElement = new VisualElement();

如果将样式表添加到myElement:

myElement.stylesheets.Add(myStyleSheet);

:root选择器匹配myElement但不是myElementChildmyOtherElement.

如果将样式表显式添加到myElementChildmyOtherElement:

myElementChild.stylesheets.Add(myStyleSheet);
myOtherElement.stylesheets.Add(myStyleSheet);

在这种情况下,:root选择器匹配myElement,myElementChildmyOtherElement.

其他资源

选择器列表
选择器优先级