CSS reguła @property
- Poprzednia strona CSS zmienne - Zapytania mediowe
- Następna strona CSS Box Sizing
CSS reguła @property
@property
Reguły są używane do bezpośredniego definiowania niestandardowych atrybutów CSS w stylach, bez uruchamiania jakiegokolwiek JavaScript.
@property
Reguły mają sprawdzanie typu danych i ograniczenia, ustawiają wartość domyślną i definiują, czy wartość może być dziedziczona.
Definicja instancji atrybutu niestandardowego:
@property --myColor { syntax: ",<color>"; inherits: true; initial-value: lightgray; }
Definicja powyżej oznacza --myColor
jest to atrybut koloru, który może dziedziczyć wartość elementu nadrzędnego, jego wartość domyślna to lightgray.
Aby używać niestandardowych atrybutów w CSS, używamy var()
Funkcja:
body { background-color: var(--myColor); }
Użycie @property
zalety:
- Typowanie typów:Wymagane jest określenie typu danych własnych atrybutów, takich jak <number>, <color>, <length>. Zapobiega to błędom i zapewnia poprawne użycie własnych atrybutów
- Ustawienie wartości domyślnej:Można ustawić domyślną wartość dla własnych atrybutów. To zapewnia, że jeśli przydzielona zostanie niewłaściwa wartość, przeglądarka użyje zdefiniowanej wartości zastępczej.
- Ustawienie zachowania dziedziczenia:Wymagane jest określenie, czy własne atrybuty mogą dziedziczyć wartości od elementu nadrzędnego.
Wsparcie przeglądarki
Liczby w tabeli oznaczają pierwszą wersję przeglądarki, która w pełni obsługuje to regułę.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
85 | 85 | 128 | 16.4 | 71 |
Prosty przykład @property
W tym przykładzie zdefiniowano dwa własne atrybuty:--my-bg-color
i --my-txt-colo
r. Następnie, div w background-color
i color
Używając własnych atrybutów w:
Przykład
@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); }
innej instancji @property
W tym przykładzie użyjemy domyślnych własnych atrybutów w elemencie <div>. Następnie użyjemy .fresh
i .nature
Dobrze działa, gdy nadpisujemy własne atrybuty (ustawiając inne kolory):
Przykład
@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); }
Unikaj błędów poprzez sprawdzanie typu i wartości zastępczych
W następnym przykładzie, ustawimy .nature
Wartości własnych atrybutów w klasach są ustawione na liczbę całkowitą. To jest niewłaściwe, przeglądarka użyje wartości zdefiniowanej w initial-value
Zastępcze kolory zdefiniowane w atrybutach (lightgray):
Przykład
@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; }
używając wartości inherits
W następnym przykładzie, ustawimy inherits
wartość ustawiona na false
To oznacza, że własne atrybuty nie dziedziczą wartości od elementu nadrzędnego. Zobacz wynik:
Przykład
@property --my-bg-color { syntax: ",<color>"; inherits: false; initial-value: lightgray; }
Następny przykład będzie inherits
wartość ustawiona na true
To oznacza, że własne atrybuty dziedziczą wartości od elementu nadrzędnego. Zobacz wynik:
Przykład
@property --my-bg-color { syntax: ",<color>"; inherits: true; initial-value: lightgray; }
Użycie @property do tworzenia gładkich animacji
Użycie @property
Nowe możliwości, które reguły mogą zaoferować, to animacja treści, które wcześniej nie były animowane: gradienty. Zobacz poniższy przykład:
Przykład
Określ dwie niestandardowe właściwości dla gradientu:
@property --startColor { syntax: ",<color>"; initial-value: #EADEDB; inherits: false; } @property --endColor { syntax: ",<color>"; initial-value: #BC70A4; inherits: false; }
CSS reguła @property
Atrybut | Opis |
---|---|
@property | Definiowanie niestandardowych właściwości CSS bezpośrednio w arkuszu stylów, bez uruchamiania jakiegokolwiek JavaScript. |
- Poprzednia strona CSS zmienne - Zapytania mediowe
- Następna strona CSS Box Sizing