USS class selectors match elements that have specific USS classes assigned. USS class selectors are analogous to CSS class selectors.
A class selector consists of the class name prefixed with a period. Class names can’t begin with a numeral.
.className { ... }
Only use a period when you write the selector in a USS file. Don’t include it when you assign the class to an element in a UXML or C# file. For example, don’t use <Button class=".yellow" />
.
In general, don’t include a period in class names. Unity’s USS parser interprets a period as the beginning of a new class. For example, if you create a class called yellow.button
, and create the following USS rule: .yellow.button{...}
. The parser interprets the selector as a multiple selector, and tries to find elements that match both a .yellow
class and a .button
class.
当一个元素指定了多个类时,选择器只需要匹配其中一个类来匹配元素。
您还可以在选择器中指定多个类,在这种情况下,元素必须指定了所有这些类才能匹配。有关详细信息,请参阅多个选择器。
To demonstrate how simple selectors match elements, here is an example UI Document.
<UXML xmlns="UnityEngine.UIElements">
<VisualElement name="container1">
<VisualElement name="container2" class="yellow">
<Button name="OK" class="yellow" text="OK" />
<Button name="Cancel" text="Cancel" />
</VisualElement>
</VisualElement>
</UXML>
With no styles applied, the UI looks like the following:
The following name class selector style rule matches the element container2
and the button element OK
, and changes their background to yellow.
.yellow {
background-color: yellow;
}
The UI looks like the following when you apply the style: