Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход

Предпочтение селекторов

Когда элемент соответствует более чем одному селектору, Unity рассматривает несколько факторов, чтобы определить, какой селектор имеет приоритет.

Как Unity определяет приоритет зависит от того, находятся ли конфликтующие селекторы в одной таблице стилей или в разных таблицах стилей.

Приоритет для селекторов в одной таблице стилей

Когда элемент соответствует нескольким селекторам из одной и той же таблицы стилей, селектор с наивысшим специфичность имеет приоритет.

Если оба селектора имеют одинаковые специфичность, селектор, который появляется последним в USS файл имеет приоритет.

Приоритет для селекторов в различных таблицах стилей

Когда элемент соответствует нескольким селекторам в разных таблицах стилей, Unity определяет приоритет в соответствии со следующими факторами в следующем порядке:

  1. Тип таблицы стилей: Селекторы из пользовательских таблиц стилей имеют приоритет над селекторами из таблиц стилей по умолчанию Unity.
  2. Специфичность селектора: Если оба селектора находятся в таблице стилей одного типа, то приоритет имеет селектор с наивысшей специфичностью
  3. Положения таблиц стилей в иерархии элементов: Если оба селектора имеют одинаковую специфичность, приоритет имеет тот селектор, таблица стилей которого применяется на самом низком уровне иерархии элементов.
  4. Положения селекторов в их таблицах стилей: Если вы применяете обе таблицы стилей на одном и том же уровне иерархии, приоритет имеет селектор, ближе всего расположенный к концу его файла USS.

Специфичность селекторов

Специфичность селектора является показателем релевантности. Чем выше специфичность, тем более релевантным является селектор для элементов, которые он соответствует.

  • Имя селекторов более специфичны, чем Класс селекторов.
  • Класс селекторы более специфичны, чем Тип селекторов.
  • Тип селекторов являются более специфическими, чем Универсальный (*) селектор.
  • Универсальные селекторы имеют самую низкую специфичность.

Переопределение стиля

Вы можете стилизовать элемент в UI Toolkit следующим образом:

Если вы примените несколько методов стилизации к элементу, он будет подвергнут переопределению стиля.

Применённые стили переопределяют унаследованные

Стили, которые напрямую нацелены на элемент, имеют преимущество перед стилями, наследуемыми элементом, даже если наследуемые стили определены в селекторе с более высокой специфичностью.

Встроенные стили переопределяют стили USS

Встроенные стили, которые вы применяете к элементам в документе UXML, имеют преимущество перед стилями USS. Они имеют более высокую специфичность, чем селектор USS.

Примечание: USS не поддерживает !important правило, применяемое для переопределения объявлений стиля в CSS.

Стили из C# переопределяют встроенные стили и стили USS

Стили, заданные из скрипта C#, переопределяют стили USS и встроенные стили из документа UXML. У них наивысшая специфичность.

Дополнительные ресурсы