Zmienne CSS, a dokładniej customowe właściwości (ang. custom properties) są nowym modułem standardu CSS, w tym poście przedstawię jak ich używać.
Zmienne CSS zapisujemy używając dwóch myślników przed nazwą np.:
Możecie się zastanawiać, dlaczego nie $color
. Składnie tą użyto, ponieważ dolara używają
preprocesory CSS takie jak
Less czy
Sass więc skorzystano z innej składni,
aby było możliwe użycie zmiennych Less/Sass w tym samym arkuszu razem ze zmiennymi CSS.
Aby użyć zmiennej CSS, korzystamy z funkcji var np.:
Możemy wykryć czy zmienne css są obsługiwane przez przeglądarkę za pomocą reguły at @support
,
aczkolwiek @support
nie jest obsługiwany przez przeglądarkę Internet Exporer, ale nie obsługuje ona także zmiennych CSS, więc to nie ma znaczenia.
Powyższy kod ustawi tło jako kolor czerwony, jeśli przeglądarka nie obsługuje zmiennych css lub zielony, jeśli je obsługuje.
Jeśli mamy kod, który używa tej samej właściwości dwa razy np.:
Możemy skrócić ten kod używając zmiennych np.:
Aby zmienna --size
miała wartość 6
, nie można użyć width: var(--size)em
, ponieważ przeglądarka zinterpretuje to jako 6 em
,
na szczęście można skonwertować wartość liczbową do jednostkowej używając calc
i mnożąc przez 1em np.:
lub
Zmiennych można także używać jako style inline np.:
Zmiennych CSS można użyć, aby skrócić zapis nowych właściwości z prefixami np:
i użyć tej zmiennej na jakimś elemencie np.:
Można ich używać, aby dodać nowe właściwości np --prepend
, która doda nowy tekst przed elementem np.:
i wtedy możemy dodać tekst, korzystając z poniższego kodu:
może nawet używać tej właściwości inline, np.:
Powyższy kod wyświetli tekst „hello world!”.
Zmienne CSS w JavaScript
Można definiować zmienne w JavaScript. Aby pobrać wartość można użyć:
powyższy kod pobierze wartość zmiennej inline, aby pobrać wartość, która może być zdefiniowana w pliku css, można użyć:
aby przypisać wartość, korzystamy z funkcji setProperty
np.:
Możemy przypisać je do elementu root, aby potem użyć dla dowolnego elementu:
Można ich użyć aby dodać wartość elementu input i użyć go w css:
po dodaniu zmiennej --value
, można jej użyć dla elementu input o typie range
, aby dodać inne tło od początku do uchwytu:
Podsumowanie
Możecie się zastanawiać czy można używać zmiennych css już dzisiaj. Okazuje się, że zmienne css są dostępne w większości nowoczesnych przeglądarek oprócz Internet Explorera i Edge, chociaż wiadomo (w chwili pisania tego artykułu), że ich obsługa ma zostać dodana w nowej wersji 15 przeglądarki Edge. Możecie zobaczyć jakie przeglądarki już je zaimplementowały na stronie can I use.
Komentarze
Hasło, które podasz umożliwi ponowne zalogowanie się i np. usunięcie komentarza, jest dobrowolne. Email jest szyfrowany i używany do wysyłania powiadomień o odpowiedziach do komentarzy oraz do pobierania awatara dzięki usłudze Gravatar.com.