CSS @property-regel
- Föregående sida CSS variabler - Mediafrågor
- Nästa sida CSS Box Sizing
CSS @property-regel
@property
Regeln används för att direkt definiera anpassade CSS-egenskaper i stiltabellen utan att köra någon JavaScript.
@property
Regeln har data typkoll och restriktioner, anger standardvärde och definierar om egenskapen kan ärva värden.
Definiera ett exempel på en anpassad egenskap:
@property --myColor { syntax: "<color>"; arver: sant; initial-value: ljusgrå; }
Ovanstående definition betyder --myColor
Det är en färgegenskap som kan ärva värden från föräldrelementet, med standardvärdet lightgray.
För att använda anpassade egenskaper i CSS använder vi var()
Funktion:
body { background-color: var(--myColor); }
Använd @property
Fördelarna:
- Typkoll:Det måste anges vilket datatyp som används för den anpassade egenskapen, t.ex. <number>, <color>, <length>. Detta förhindrar fel och säkerställer korrekt användning av anpassade egenskaper
- Ställ in standardvärde:Det är möjligt att sätta en standardvärde för en anpassad egenskap. Detta säkerställer att om ett ogiltigt värde tilldelas senare, kommer webbläsaren att använda det definierade reservvärdet.
- Ställ in arvshandling:Det måste anges om en anpassad egenskap kan arbeta från sitt föräldrelementets värde.
Webbläsarstöd
Tal i tabellen representerar den första webbläsarversionen som helt stöder denna regel.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
85 | 85 | 128 | 16.4 | 71 |
En enkel @property-exempel
I detta exempel definieras två anpassade egenskaper:--minne-färg
och --minne-textfärg
r. Därefter kommer div att använda bakgrundsfärg
och färg
Använd anpassade egenskaper:
Exempel
@property --minne-färg { syntax: "<color>"; arver: sant; initial-value: ljusgrå; } @property --minne-textfärg { syntax: "<color>"; arver: sant; initial-value: mörkblå; } div { bredd: 300px; höjd: 150px; marginal: 15px; bakgrundsfärg: var(--minne-färg); färg: var(--minne-textfärg); }
en annan @property-instans
I detta exempel använder vi standardanpassade egenskaper på <div>-elementet. Sedan använder vi .färsk
och .naturlig
Klasser som överskrider anpassade egenskaper (genom att sätta andra färger), fungerar mycket bra:
Exempel
@property --minne-färg { syntax: "<color>"; arver: sant; initial-value: ljusgrå; } div { bredd: 300px; höjd: 150px; marginal: 15px; bakgrundsfärg: var(--minne-färg); } .färsk { --minne-färg: #ff6347; } .naturlig { --minne-färg: rgb(120, 180, 30); }
Genom typkontroll och reservvärden undviks fel
I detta exempel kommer vi att .naturlig
Anpassade egenskaper i klassen sätts till heltal. Detta är ogiltigt, webbläsaren kommer att använda i initial-value
Reservfärger definierade i egenskapen (ljusgrå):
Exempel
@property --minne-färg { syntax: "<color>"; arver: sant; initial-value: ljusgrå; } div { bredd: 300px; höjd: 150px; marginal: 15px; bakgrundsfärg: var(--minne-färg); } .färsk { --minne-färg: #ff6347; } .naturlig { --minne-färg: 2; }
använda arver-värdet
I detta exempel kommer vi att arver
värdet sätts till falskt
Detta innebär att anpassade egenskaper inte kommer att arbeta från sitt föräldrelement. Visa resultat:
Exempel
@property --minne-färg { syntax: "<color>"; inherits: false; initial-value: ljusgrå; }
Nästa exempel kommer att arver
värdet sätts till sant
Detta innebär att anpassade egenskaper kommer att arbeta från dess föräldrelement. Visa resultat:
Exempel
@property --minne-färg { syntax: "<color>"; arver: sant; initial-value: ljusgrå; }
Använd @property för att skapa en smidig animation
Använd @property
Nya möjligheter som reglerna kan realisera är animation av innehåll som tidigare inte kunde animeras: gradienter. Se följande exempel:
Exempel
Ange två anpassade egenskaper för gradienten:
@property --startColor { syntax: "<color>"; initial-value: #EADEDB; inherits: false; } @property --endColor { syntax: "<color>"; initial-value: #BC70A4; inherits: false; }
CSS @property-regel
Egenskap | Beskrivning |
---|---|
@property | Definiera anpassade CSS-egenskaper direkt i stiltabellen utan att behöva köra något JavaScript. |
- Föregående sida CSS variabler - Mediafrågor
- Nästa sida CSS Box Sizing