Regla @property CSS
- Página anterior Variables CSS - Consultas de medios
- Página siguiente Tamaño de cuadro CSS
Regla @property CSS
@property
规则用于直接在样式表中定义自定义 CSS 属性,而无需运行任何 JavaScript。
@property
规则具有数据类型检查和约束、设置默认值,并定义属性是否可以继承值。
定义自定义属性的实例:
@property --myColor { sintaxis: "<color>"; inherits: true; initial-value: lightgray; }
上面的定义表示 --myColor
是一个颜色属性,它可以继承父元素的值,其默认值为 lightgray。
要在 CSS 中使用自定义属性,我们使用 var()
函数:
body { background-color: var(--myColor); }
Uso @property
的好处:
- 类型检查:Es necesario especificar el tipo de datos de la propiedad personalizada, como <number>、<color>、<length>. Esto evita errores y asegura un uso correcto de las propiedades personalizadas
- Establecer valor predeterminado:Se puede establecer un valor predeterminado para la propiedad personalizada. Esto asegura que si se asigna un valor inválido en el futuro, el navegador usará el valor alternativo definido.
- Establecer comportamiento de herencia:Es necesario especificar si la propiedad personalizada puede heredar el valor de su elemento padre.
Compatibilidad del navegador
Los números en la tabla representan la primera versión del navegador que admite completamente la regla.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
85 | 85 | 128 | 16.4 | 71 |
Un ejemplo simple de @property
En el siguiente ejemplo se definen dos propiedades personalizadas:--my-bg-color
y --my-txt-colo
r. Luego, el div en background-color
y color
Utilizamos la propiedad personalizada:
Ejemplo
@property --my-bg-color { sintaxis: "<color>"; inherits: true; initial-value: lightgray; } @property --my-txt-color { sintaxis: "<color>"; inherits: true; initial-value: darkblue; } div { width: 300px; height: 150px; padding: 15px; background-color: var(--my-bg-color); color: var(--my-txt-color); }
otro ejemplo @property
En el siguiente ejemplo, utilizamos la propiedad personalizada predeterminada en el elemento <div>. Luego en .fresh
y .nature
Para cubrir la propiedad personalizada de la clase (al establecer otro color), el efecto es excelente:
Ejemplo
@property --my-bg-color { sintaxis: "<color>"; inherits: true; initial-value: lightgray; } div { width: 300px; height: 150px; padding: 15px; background-color: var(--my-bg-color); } .fresh { --my-bg-color: #ff6347; } .nature { --my-bg-color: rgb(120, 180, 30); }
Para evitar errores a través de la verificación de tipo y valores alternativos
En el siguiente ejemplo, utilizaremos .nature
El valor de la propiedad personalizada en la clase es un entero. Esto es inválido, el navegador usará el valor en initial-value
Colores alternativos definidos en la propiedad (lightgray):
Ejemplo
@property --my-bg-color { sintaxis: "<color>"; inherits: true; initial-value: lightgray; } div { width: 300px; height: 150px; padding: 15px; background-color: var(--my-bg-color); } .fresh { --my-bg-color: #ff6347; } .nature { --my-bg-color: 2; }
el valor de inherits
En el siguiente ejemplo, utilizaremos inherits
El valor se establece en false
Esto significa que las propiedades personalizadas no heredarán el valor de su elemento padre. Ver resultados:
Ejemplo
@property --my-bg-color { sintaxis: "<color>"; inherits: false; initial-value: lightgray; }
El siguiente ejemplo será inherits
El valor se establece en true
Esto significa que las propiedades personalizadas heredarán el valor de su elemento padre. Ver resultados:
Ejemplo
@property --my-bg-color { sintaxis: "<color>"; inherits: true; initial-value: lightgray; }
Crear animaciones suaves usando @property
Uso @property
Las nuevas oportunidades que pueden realizarse con las reglas son animar contenido que antes no se podía animar: la transición. Vea el siguiente ejemplo:
Ejemplo
Para especificar dos propiedades personalizadas para la transición:
@property --startColor { sintaxis: "<color>"; initial-value: #EADEDB; inherits: false; } @property --endColor { sintaxis: "<color>"; initial-value: #BC70A4; inherits: false; }
Regla @property CSS
Atributo | Descripción |
---|---|
@property | Definir propiedades CSS personalizadas directamente en la tabla de estilos sin ejecutar ningún JavaScript. |
- Página anterior Variables CSS - Consultas de medios
- Página siguiente Tamaño de cuadro CSS