CSS: статический метод registerProperty()
Базовая версия 2024
Новое
С июля 2024 года данная функция работает на последних версиях устройств и браузеров. Возможны проблемы совместимости со старыми устройствами и браузерами.
Статический метод CSS.registerProperty() регистрирует пользовательские свойства, позволяя проверять тип свойства, устанавливать значения по умолчанию и определять наследование свойств.
Регистрация пользовательского свойства позволяет указать браузеру, как оно должно работать: какие типы допустимы, наследуется ли оно и каково его значение по умолчанию.
Синтаксис
CSS.registerProperty(propertyDefinition)
Параметры
propertyDefinition-
Объект, содержащий следующие свойства:
name-
Строка, представляющая имя определяемого свойства.
syntaxНеобязательно-
Строка, представляющая ожидаемый синтаксис определяемого свойства. По умолчанию
"*". inherits-
Булево значение, определяющее, должно ли определённое свойство наследоваться (
true) или нет (false). По умолчаниюfalse. initialValueНеобязательно-
Строка, представляющая начальное значение определённого свойства.
Возвращаемое значение
undefined.
Исключения
-
InvalidModificationErrorDOMException -
Указанное
nameуже зарегистрировано. -
SyntaxErrorDOMException -
Указанное
nameне является допустимым именем пользовательского свойства (начинается с двух тире, например,--foo). TypeError-
Не были предоставлены необходимые члены словаря
nameи/илиinherits.
Примеры
Следующий пример регистрирует пользовательское свойство, --my-color, используя registerProperty(), как цвет, задаёт значение по умолчанию и не наследует это значение:
window.CSS.registerProperty({
name: "--my-color",
syntax: "<color>",
inherits: false,
initialValue: "#c0ffee",
});
В этом примере пользовательское свойство --my-color зарегистрировано с синтаксисом <color>. Теперь его можно использовать для анимации градиента при наведении или фокусе. Обратите внимание, что с зарегистрированным свойством анимация работает, но не работает с незарегистрированным!
.registered {
--my-color: #c0ffee;
background-image: linear-gradient(to right, #fff, var(--my-color));
transition: --my-color 1s ease-in-out;
}
.registered:hover,
.registered:focus {
--my-color: #b4d455;
}
.unregistered {
--unregistered: #c0ffee;
background-image: linear-gradient(to right, #fff, var(--unregistered));
transition: --unregistered 1s ease-in-out;
}
.unregistered:hover,
.unregistered:focus {
--unregistered: #b4d455;
}
button {
font-size: 3vw;
}
Можно добавить эти стили к кнопкам:
<button class="registered">Background Registered</button> <button class="unregistered">Background Not Registered</button>
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
registerProperty_static |
78 | 79 | 128 | 65 | 16.4 | 78 | 128 | 56 | 16.4 | 12.0 | 78 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CSS/registerProperty_static