Regra @property CSS
- Página anterior Variáveis CSS - Consultas de mídia
- Próxima página Box Sizing CSS
Regra @property CSS
@property
规则用于直接在样式表中定义自定义 CSS 属性,而无需运行任何 JavaScript。
@property
规则具有数据类型检查和约束、设置默认值,并定义属性是否可以继承值。
定义自定义属性的实例:
@property --myColor { syntax: "<color>"; inherits: true; initial-value: lightgray; }
上面的定义表示 --myColor
是一个颜色属性,它可以继承父元素的值,其默认值为 lightgray。
要在 CSS 中使用自定义属性,我们使用 var()
函数:
body { background-color: var(--myColor); }
Uso @property
的好处:
- 类型检查:É necessário especificar o tipo de dados do atributo personalizado, como <number>、<color>、<length>。Isso previne erros e garante o uso correto do atributo personalizado
- Configuração do valor padrão:Pode-se definir um valor padrão para o atributo personalizado. Isso garante que, se um valor inválido for atribuído posteriormente, o navegador usará o valor de reserva definido.
- Configuração do comportamento de herança:É necessário especificar se o atributo personalizado pode herdar o valor do elemento pai.
Suporte do navegador
Os números na tabela representam a primeira versão do navegador que suporta completamente a regra.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
85 | 85 | 128 | 16.4 | 71 |
Exemplo simples @property
Neste exemplo, definimos dois atributos personalizados:--my-bg-color
e --my-txt-colo
r. Em seguida, o div em background-color
e color
Para usar o atributo personalizado:
Exemplo
@property --my-bg-color { syntax: "<color>"; inherits: true; initial-value: lightgray; } @property --my-txt-color { syntax: "<color>"; inherits: true; initial-value: darkblue; } div { width: 300px; height: 150px; padding: 15px; background-color: var(--my-bg-color); color: var(--my-txt-color); }
outro exemplo @property
Neste exemplo, usamos o atributo personalizado padrão no elemento <div>. Em seguida, usamos .fresh
e .nature
Para sobrescrever o atributo personalizado (definindo outra cor), o efeito é muito bom:
Exemplo
@property --my-bg-color { syntax: "<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 erros, passe tipo de dados e valores de reserva
Neste exemplo, vamos .nature
O valor do atributo personalizado na classe é um inteiro. Isso é inválido, o navegador usará no initial-value
Cores de reserva definidas no atributo (lightgray):
Exemplo
@property --my-bg-color { syntax: "<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; }
usar o valor inherits
Neste exemplo, vamos inherits
O valor definido é false
Isso significa que o atributo personalizado não herdará o valor do elemento pai. Ver resultado:
Exemplo
@property --my-bg-color { syntax: "<color>"; inherits: false; initial-value: lightgray; }
O próximo exemplo será inherits
O valor definido é true
Isso significa que o atributo personalizado herdará o valor do elemento pai. Ver resultado:
Exemplo
@property --my-bg-color { syntax: "<color>"; inherits: true; initial-value: lightgray; }
Crie animações suaves usando @property
Uso @property
As novas oportunidades que as regras podem implementar são animar conteúdos que antes não podiam ser animados: gradientes. Veja o seguinte exemplo:
Exemplo
Especifique duas propriedades personalizadas para gradiente:
@property --startColor { syntax: "<color>"; initial-value: #EADEDB; inherits: false; } @property --endColor { syntax: "<color>"; initial-value: #BC70A4; inherits: false; }
Regra @property CSS
Atributo | Descrição |
---|---|
@property | Defina atributos CSS personalizados diretamente na tabela de estilos, sem a necessidade de executar nenhum JavaScript. |
- Página anterior Variáveis CSS - Consultas de mídia
- Próxima página Box Sizing CSS