Spec-Zone.ru › CSS

Дескриптор CSS-правила `syntax`

Базовая поддержка Недавно доступно

Эта функция работает в последних версиях браузеров и на современных устройствах. Она может не работать в старых версиях браузеров и на старых устройствах. Она доступна в браузерах с июля 2024 года.

Дескриптор syntax правила @property at-rule определяет допустимые типы значений для зарегистрированного пользовательского свойства CSS. Он управляет обработкой заданного значения свойства для вычисления вычисленного значения. Это обязательный дескриптор; если он отсутствует или указан неверно, всё правило @property считается недействительным и игнорируется.

Синтаксис

/* A data type name */
syntax: "<color>";

/* A '|' combinator for multiple data types */
syntax: "<length> | <percentage>";

/* Space-separated list of values */
syntax: "<color>+";

/* Comma-separated list of values */
syntax: "<length>#";

/* Keywords */
syntax: "small | medium | large";

/* Combination of data type and keyword */
syntax: "<length> | auto";

/* Universal syntax value */
syntax: "*";

Значения

Строка (называемая строкой синтаксиса), которая определяет допустимые значения. Она может иметь один из следующих видов:

  • Одно или несколько имён компонентов синтаксиса, которыми могут быть:
    • Имена типов данных (записываются в угловых скобках, например, <color> или <length>)
    • Ключевые слова (записываются без угловых скобок, например, auto или none)
  • Универсальный синтаксис *, принимающий любое допустимое значение CSS. Его нельзя умножать или сочетать с другими компонентами синтаксиса.

Имена компонентов синтаксиса можно использовать отдельно, умножать и сочетать различными способами:

  • Модификаторы + (разделение пробелами) и # (разделение запятыми) указывают, что ожидается список значений. Например, <color># означает, что ожидаемый синтаксис — это список значений <color>, разделённых запятыми.

  • Вертикальная черта (комбинатор |) позволяет задавать условия «или» для ожидаемого синтаксиса. Например, <length> | auto принимает <length> или auto, а <color># | <integer># ожидает список значений <color>, разделённых запятыми, либо список значений <integer>, разделённых запятыми.

Поддерживаются следующие имена компонентов синтаксиса:

"<angle>"
Принимает любое допустимое значение <angle>.
"<color>"
Принимает любое допустимое значение color.
"<custom-ident>"
Принимает любое допустимое значение <custom-ident>.
"<image>"
Принимает любое допустимое значение <image>.
"<integer>"
Принимает любое допустимое значение <integer>.
"<length>"
Принимает любое допустимое значение <length>.
"<length-percentage>"
Принимает любое допустимое значение <length> или <percentage>, а также любое допустимое выражение calc(), объединяющее значения <length> и <percentage>.
"<number>"
Принимает любое допустимое значение <number>.
"<percentage>"
Принимает любое допустимое значение <percentage>.
"<resolution>"
Принимает любое допустимое значение <resolution>.
"<string>"
Принимает любое допустимое значение <string>.
"<time>"
Принимает любое допустимое значение <time>.
"<transform-function>"
Принимает любое допустимое значение <transform-function>.
"<transform-list>"
Принимает список допустимых значений <transform-function>. Эквивалентно "<transform-function>+".
"<url>"
Принимает любое допустимое значение <url>.

Формальное определение

Формальный синтаксис

Примеры

Регистрация пользовательского свойства с проверкой типа

В этом примере показано, как определить пользовательское свойство --my-color, которое принимает только значения <color>:

@property --my-color {
  syntax: "<color>";
  inherits: false;
  initial-value: #c0ffee;
}

С помощью JavaScript CSS.registerProperty():

window.CSS.registerProperty({
  name: "--my-color",
  syntax: "<color>",
  inherits: false,
  initialValue: "#c0ffee",
});

Спецификации

Спецификация
CSS Properties and Values API Level 1
# the-syntax-descriptor

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
syntax
85
85
128
71
16.4
85
128
60
16.4
14.0
85
16.4

См. также

  • Другие дескрипторы @property: inherits и initial-value
  • Регистрация пользовательских свойств CSS
  • CSS Properties and Values API
  • CSS Painting API
  • CSS Typed Object Model
  • Houdini APIs

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@property/syntax

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API