Regla CSS @property
Definición y uso
CSS @property
Las reglas se utilizan para definir propiedades CSS personalizadas directamente en la tabla de estilos, sin necesidad de ejecutar ningún JavaScript.
@property
Las reglas tienen funciones de verificación de tipo de datos y restricciones, pueden establecer valores predeterminados y definir si la propiedad puede heredar valores.
Usar @property
Ventajas:
- Verificación de tipo y restricciones: debe especificar el tipo de datos de la propiedad personalizada, por ejemplo <number>, <color>, <length> y otros. Esto puede evitar errores y asegurar el uso correcto de las propiedades personalizadas.
- Establecer el valor predeterminado: se puede establecer un valor predeterminado para la propiedad personalizada. Esto asegura que si se asigna un valor inválido posteriormente, el navegador utilizará el valor de reemplazo definido.
- Establecer el comportamiento de herencia: debe especificar si la propiedad personalizada puede heredar valores del elemento padre.
Ejemplo: definir propiedades personalizadas
@property --my-color { sintaxis: "<color>"; inherits: true; initial-value: lightgray; }
La definición anterior indica que --my-color es una propiedad de color, que puede heredar el valor del elemento padre y tiene un valor predeterminado de lightgray.
Utilizar propiedades personalizadas en CSS:
body {}} backgound-color: var(--my-color); }
Ejemplo
Ejemplo 1
Especifica dos propiedades personalizadas para el degradado - y usa ellas para animar el degradado:
@property --startColor { sintaxis: "<color>"; initial-value: #EADEDB; inherits: false; } @property --endColor { sintaxis: "<color>"; initial-value: #BC70A4; inherits: false; }
Ejemplo 2
Especifica dos propiedades personalizadas: una para el tamaño del elemento y otra para el color del elemento:
@property --item-size { sintaxis: "<percentage>"; inherits: true; initial-value: 50%; } @property --item-color { sintaxis: "<color>"; inherits: false; initial-value: lightgray; }
Sintaxis de CSS
@property --propertyname { sintaxis: "<color>"; initial-value: red; inherits: false; }
Valor de la propiedad
Valor | Descripción |
---|---|
--propertyname | Obligatorio. El nombre de la propiedad personalizada. |
sintaxis |
Puede ser <length>, <number>, <percentage>, <length-percentage>, <color>, <image>, <url>, <integer>, <angle>, <time>, <resolution>, <transform-function> o <custom-ident>, o una lista de tipos de datos y valores de palabras clave. + (separados por espacios) y # (separados por comas) son multiplicadores que representan una lista de valores, por ejemplo, <color># representa una lista de valores <color> separados por comas. La barra vertical (|) puede crear condiciones de 'o' para la sintaxis esperada, por ejemplo, <length> | auto acepta <length> o auto, mientras que <color># | <integer># espera una lista de valores <color> separados por comas o una lista de valores <integer> separados por comas. |
initial-value | Establece el valor inicial de la propiedad. |
inherits | true o false. Controla si la herencia por defecto de la propiedad personalizada especificada por @property se registra. |
Compatibilidad del navegador
Los números en la tabla representan la versión del navegador que completamente admite la @regla.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
85 | 85 | 128 | 16.4 | 71 |
Páginas relacionadas
Tutoriales:Regla CSS @property