Reguła @property w CSS

Definicja i użycie

CSS @property Reguły są używane do bezpośredniego definiowania niestandardowych atrybutów CSS w tabeli stylów, bez uruchamiania jakiegokolwiek JavaScript.

@property Reguły mają funkcje sprawdzania typu danych i ograniczeń, pozwalają ustawić wartość domyślną oraz zdefiniować, czy atrybut może dziedziczyć wartość.

Użycie @property Zalety:

  • Sprawdzenie typu i ograniczenia: musisz określić typ danych niestandardowego atrybutu, na przykład <number>, <color>, <length> itp. To zapobiega błędom i zapewnia poprawne użycie niestandardowych atrybutów.
  • Ustawienie wartości domyślnej: możesz ustawić wartość domyślną dla niestandardowego atrybutu. To zapewnia, że jeśli przypisano niewłaściwą wartość, przeglądarka użyje zdefiniowanej wartości awaryjnej.
  • Ustawienie zachowania dziedziczenia: musisz określić, czy niestandardowy atrybut może dziedziczyć wartość od elementu nadrzędnego.

Przykład: zdefiniowanie niestandardowego atrybutu

@property --my-color {
  syntax: '<color>';
  dziedziczy: true;
  initial-value: lightgray;
}

Powyższe definicje oznaczają, że --my-color to atrybut koloru, który może dziedziczyć wartość od elementu nadrzędnego i ma wartość domyślną lightgray.

Użycie niestandardowych atrybutów w CSS:

body {}}
  backgound-color: var(--my-color);
}

Przykład

Przykład 1

Określ dwie własne właściwości dla gradientu - i użyj ich do animacji gradientu:

@property --startColor {
  syntax: '<color>';
  initial-value: #EADEDB;
  dziedziczy: false;
}
@property --endColor {
  syntax: '<color>';
  initial-value: #BC70A4;
  dziedziczy: false;
}

Spróbuj sam

Przykład 2

Określ dwie własne właściwości: jedną dla rozmiaru elementu, drugą dla koloru elementu:

@property --item-size {
  syntax: '<percentage>';
  dziedziczy: true;
  initial-value: 50%;
}
@property --item-color {
  syntax: '<color>';
  dziedziczy: false;
  initial-value: lightgray;
}

Spróbuj sam

Gramatyka CSS

@property --propertyname {
  syntax: '<color>';
  initial-value: red;
  dziedziczy: false;
}

Wartość właściwości

Wartość Opis
--propertyname Wymagane. Nazwa własnej właściwości.
syntax

Może to być <length>, <number>, <percentage>, <length-percentage>, <color>, <image>, <url>, <integer>, <angle>, <time>, <resolution>, <transform-function> lub <custom-ident>, lub lista wartości typów danych i kluczowych słów.

+ (oddzielone spacjami) i # (oddzielone przecinkami) mnożniki oznaczają oczekiwaną listę wartości, np. <color># oznacza, że oczekiwana jest lista wartości <color> rozdzielonych przecinkami.

Pionowa linia (|) może tworzyć warunek "lub" dla oczekiwanej gramatyki, np. <length> | auto akceptuje <length> lub auto, a <color># | <integer># oczekuje listy wartości <color> rozdzielonych przecinkami lub listy wartości <integer> rozdzielonych przecinkami.

initial-value Ustawia wartość początkową właściwości.
dziedziczy true lub false. Kontrole, czy domyślnie dziedziczy się zarejestrowana własna właściwość określona przez @property.

Obsługa przeglądarki

Liczby w tabeli oznaczają wersje przeglądarek, które w pełni obsługują tę @ zasadę.

Chrome Edge Firefox Safari Opera
85 85 128 16.4 71

Strony związane

Tutorial:Reguła @property w CSS