CSS @property regeln
Definition och användning
CSS @property
Reglerna används för att direkt definiera anpassade CSS-egenskaper i stiltabellen utan att köra något JavaScript.
@property
Reglerna har funktioner för data typkontroll och restriktioner, kan ställa in standardvärden och definiera om egenskapen kan ärva värden.
Använd @property
Fördelarna:
- Typkontroll och restriktioner: Du måste specificera den anpassade egenskapens datatyp, till exempel <number>、<color>、<length> etc. Detta förhindrar fel och säkerställer korrekt användning av den anpassade egenskapen.
- Ställ in standardvärde: Du kan sätta ett standardvärde för den anpassade egenskapen. Detta säkerställer att om ett ogiltigt värde tilldelas senare, kommer webbläsaren att använda det definierade säkerhetsvärdet.
- Ställ in arv: Du måste specificera om den anpassade egenskapen kan ärva värden från sitt föräldrelement.
Exempel: Definiera anpassade egenskaper
@property --my-color { syntax: "<color>"; inherits: true; initial-value: lightgray; }
Ovanstående definition betyder att --my-color är en färgegenskap som kan ärva värden från föräldrelementet och har som standardvärde lightgray.
Använd anpassade egenskaper i CSS:
body {}} backgound-color: var(--my-color); }
Exempel
Exempel 1
Specificera två anpassade egenskaper för gradienten - och använd dem för att animera gradienten:
@property --startColor { syntax: "<color>"; initial-value: #EADEDB; inherits: false; } @property --endColor { syntax: "<color>"; initial-value: #BC70A4; inherits: false; }
Exempel 2
Specificera två anpassade egenskaper: en för objektstorlek och en för objektfärg:
@property --item-size { syntax: "<percentage>"; inherits: true; initial-value: 50%; } @property --item-color { syntax: "<color>"; inherits: false; initial-value: lightgray; }
CSS-syntax
@property --propertyname { syntax: "<color>"; initial-value: red; inherits: false; }
Egenskapsvärde
Värde | Beskrivning |
---|---|
--propertyname | Obligatorisk. Namnet på den anpassade egenskapen. |
syntax |
Kan vara <length>, <number>, <percentage>, <length-percentage>, <color>, <image>, <url>, <integer>, <angle>, <time>, <resolution>, <transform-function> eller <custom-ident>, eller en lista med datatyper och nyckelvärden. + (mellanslag separerade) och # (kommateckensparerade) multiplikatorer representerar en lista med värden, till exempel <color># representerar att den förväntade syntaxen är en lista med kommateckensparerade <color>-värden. Streckremsan (|) kan skapa ett "eller"-villkor för den förväntade syntaxen, till exempel <length> | auto accepterar <length> eller auto, medan <color># | <integer># förväntar sig en lista med kommateckensparerade <color>-värden eller en lista med kommateckensparerade <integer>-värden. |
initial-value | Ställer in den inledande värdet för egenskapen. |
inherits | true eller false. Kontrollerar om den anpassade egenskap som specificerats av @property automatiskt ärver. |
Webbläsarstöd
Talen i tabellen representerar den första webbläsarversion som helt stöder denna @-regel.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
85 | 85 | 128 | 16.4 | 71 |
Relaterade sidor
Lektioner:CSS @property regeln