Co to są zmienne CSS i jak ich używać

Opublikowany: 2022-02-16

Podczas pisania kodu CSS dla swojej witryny możesz skorzystać z niestandardowych właściwości CSS (zmiennych), aby przyspieszyć proces rozwoju. Możesz użyć zmiennych do zdefiniowania właściwości (rozmiar, kolor), które następnie można zastosować do kilku elementów.

W ten sposób można mieć większą kontrolę nad kodem i projektem. Zmiana wartości zmiennej w jednym miejscu nadpisuje wartość tej właściwości wszędzie tam, gdzie jest wywoływana.

W tym poście wyjaśnimy, jak korzystać ze zmiennych CSS i kilka praktycznych zastosowań.

Zaczynajmy!

Deklarowanie zmiennej

Zmienne mogą mieć zasięg globalny lub lokalny. Aby zdefiniować zmienną globalnie, użyj selektora :root.

 :root { --base-font-size: 1.1rem; }
OTWÓRZ W WYSKAKUJĄCYM
 :root { --base-font-size: 1.1rem; }

Selektor :root pasuje do katalogu głównego dokumentu, czyli w naszym konkretnym przypadku <html> .

Aby zadeklarować niestandardową właściwość CSS (zmienna), zacznij od dwóch myślników (--). W zmiennych rozróżniana jest wielkość liter, na przykład:

--base-font-size i --Base-Font-Size to dwie różne zmienne.

Aby zdefiniować zmienną lokalnie, użyj selektora elementu, w którym chcesz użyć zmiennej.

 #first-container { --background: #ccc; }
OTWÓRZ W WYSKAKUJĄCYM
 #first-container { --background: #ccc; }

Po zdefiniowaniu zmiennej konieczne jest jej wywołanie.


Funkcja var()

Funkcja var() służy do wstawiania wartości zdefiniowanej zmiennej CSS. Funkcja zastępuje się wartością zmiennej. Spójrzmy na przykład:

Kod HTML

  • Skopiuj i wklej ten kod do swojego edytora kodu.
  • Zapisz plik jako index.html .
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/style.css"> <title>CSS Variables</title> </head> <body> <div class="wrapper"> <div class="container-1"> <p class="first">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste doloribus dolorum eaque veritatis quia quod?</p> <button type="button">Click here!</button> </div> <div class="container-2"> <p class="second">Lorem ipsum dolor sit amet consectetur adipisicing elit. Libero, dolorem. Reprehenderit mollitia quos quia qui.</p> <button type="button">Click here!</button> </div> <div class="container-3"> <p class="third">Lorem ipsum dolor sit amet consectetur adipisicing elit. Nisi dolor reprehenderit, ad sunt aperiam officiis!</p> <button type="button">Click here!</button> </div> </div> </body> </html>
OTWÓRZ W WYSKAKUJĄCYM
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/style.css"> <title>CSS Variables</title> </head> <body> <div class="wrapper"> <div class="container-1"> <p class="first">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste doloribus dolorum eaque veritatis quia quod?</p> <button type="button">Click here!</button> </div> <div class="container-2"> <p class="second">Lorem ipsum dolor sit amet consectetur adipisicing elit. Libero, dolorem. Reprehenderit mollitia quos quia qui.</p> <button type="button">Click here!</button> </div> <div class="container-3"> <p class="third">Lorem ipsum dolor sit amet consectetur adipisicing elit. Nisi dolor reprehenderit, ad sunt aperiam officiis!</p> <button type="button">Click here!</button> </div> </div> </body> </html>

Co to są zmienne CSS i jak ich używać

Kod CSS

  • Utwórz plik o nazwie style.css (w tym samym katalogu index.html ).
  • Wklej poniższy kod i zapisz plik.
 /* Global styles */ .wrapper, div { padding: 1rem; } div { margin: 1rem auto; } /* DEFINITION OF VARIABLES */ :root { /* Color palette */ --primary: #007bff; --success: #28a745; --warning: #ffc107; --white: #f9f9f9; --light-grey: #d8d8d8; /* Borders */ /* It is possible to use an already declared variable within the definition of another variable */ --border-primary: 1px solid var(--primary); --border-success: 1px solid var(--success); --border-warning: 1px solid var(--warning); } /* VARIABLES */ /* Wrapper */ .wrapper { background-color: var(--light-grey); } /* First Container */ .container-1 { /* The var() function replaces itself with the value of the variable */ border: var(--border-primary); color: var(--primary); background-color: var(--white); } .container-2 { /* The var() function replaces itself with the value of the variable */ border: var(--border-success); color: var(--success); background-color: var(--white); } .container-3 { /* The var() function replaces itself with the value of the variable */ border: var(--border-warning); color: var(--warning); background-color: var(--white); } .container-1 button { background-color: var(--primary); color: var(--white); } .container-2 button { background-color: var(--success); color: var(--white); } .container-3 button { background-color: var(--warning); color: var(--white); }< button {
border-radius: 5px; }
OTWÓRZ W WYSKAKUJĄCYM
 /* Global styles */ .wrapper, div { padding: 1rem; } div { margin: 1rem auto; } /* DEFINITION OF VARIABLES */ :root { /* Color palette */ --primary: #007bff; --success: #28a745; --warning: #ffc107; --white: #f9f9f9; --light-grey: #d8d8d8; /* Borders */ /* It is possible to use an already declared variable within the definition of another variable */ --border-primary: 1px solid var(--primary); --border-success: 1px solid var(--success); --border-warning: 1px solid var(--warning); } /* VARIABLES */ /* Wrapper */ .wrapper { background-color: var(--light-grey); } /* First Container */ .container-1 { /* The var() function replaces itself with the value of the variable */ border: var(--border-primary); color: var(--primary); background-color: var(--white); } .container-2 { /* The var() function replaces itself with the value of the variable */ border: var(--border-success); color: var(--success); background-color: var(--white); } .container-3 { /* The var() function replaces itself with the value of the variable */ border: var(--border-warning); color: var(--warning); background-color: var(--white); } .container-1 button { background-color: var(--primary); color: var(--white); } .container-2 button { background-color: var(--success); color: var(--white); } .container-3 button { background-color: var(--warning); color: var(--white); }< button {
border-radius: 5px; }

Co to są zmienne CSS i jak ich używać

Jest tu kilka rzeczy, na które warto zwrócić uwagę:

  1. Tworzenie palety kolorów to prosty proces.
  2. Możliwe jest użycie zmiennej wewnątrz definicji innej zmiennej, podobnie jak kolor w definicji zmiennych obramowania.
  3. Zmienne są dziedziczone, właściwość color elementu .container-* wpływa na jego bezpośrednie dzieci. W tym przypadku element <p>.

Aby przesłonić zmienną, deklarujesz ją w jej kontenerze, czyniąc ją bardziej szczegółową.

  • Edytuj kod CSS:
 button { border-radius: 5px; /* Overriding a global variable */ --primary: #021b35; }
OTWÓRZ W WYSKAKUJĄCYM
 button { border-radius: 5px; /* Overriding a global variable */ --primary: #021b35; } 

Co to są zmienne CSS i jak ich używać


Zmienne i zapytania o media

Zmienne mogą być również dziedziczone i zastępowane w zapytaniach o media CSS.

  • Dodaj ten kod do zmiennych:
 :root { /* Color palette */ --primary: #007bff; --success: #28a745; --warning: #ffc107; --white: #f9f9f9; --light-grey: #d8d8d8; /* Borders */ /* It is possible to use an already declared variable within the definition of another variable */ --border-primary: 1px solid var(--primary); --border-success: 1px solid var(--success); --border-warning: 1px solid var(--warning); /* Width of the wrapper 1000px / 90% on smaller devices */ --wrapper-width: 1000px; }
OTWÓRZ W WYSKAKUJĄCYM
 :root { /* Color palette */ --primary: #007bff; --success: #28a745; --warning: #ffc107; --white: #f9f9f9; --light-grey: #d8d8d8; /* Borders */ /* It is possible to use an already declared variable within the definition of another variable */ --border-primary: 1px solid var(--primary); --border-success: 1px solid var(--success); --border-warning: 1px solid var(--warning); /* Width of the wrapper 1000px / 90% on smaller devices */ --wrapper-width: 1000px; }

Zdefiniowaliśmy szerokość bazową elementu wrappera. Możemy teraz zastosować te zmienne do właściwości .wrapper width.

  • Dodaj ten kod na końcu pliku CSS:
 .wrapper { width: var(--wrapper-width);
margin: 0 auto; }
OTWÓRZ W WYSKAKUJĄCYM
 .wrapper { width: var(--wrapper-width);
margin: 0 auto; }

Co to są zmienne CSS i jak ich używać

Aby zdefiniować zapytanie o media dla urządzeń z ekranami o szerokości mniejszej niż 1100px, piszemy następujące zapytanie o media.

  • Edytuj kod CSS:
 @media screen and (max-width: 1100px) { .wrapper { --wrapper-width: 90%; } }
OTWÓRZ W WYSKAKUJĄCYM
 @media screen and (max-width: 1100px) { .wrapper { --wrapper-width: 90%; } }

Co to są zmienne CSS i jak ich używać

Co to są zmienne CSS i jak ich używać

Nowa definicja zmiennej w zapytaniu o media zastępuje jej wartość. Zauważ też, że zmienna jest dostępna w DOM, co oznacza, że ​​można ją pobrać i manipulować za pomocą JS. Nie jest to możliwe w przypadku zmiennych w preprocesorach CSS.


Streszczenie

Zmienne są przydatne do organizowania i zarządzania małymi i dużymi ilościami CSS. Ograniczają powtórzenia, a tym samym zapobiegają błędom. Zmienne CSS są dynamiczne, co oznacza, że ​​można je zmieniać w czasie wykonywania. Łatwo jest dynamicznie utworzyć motyw witryny lub aplikacji za pomocą zmiennych CSS. Zapewniają możliwość przypisywania wartości do właściwości CSS o niestandardowej nazwie. Zmienne podlegają standardowym zasadom kaskadowania, dzięki czemu możliwe jest zdefiniowanie tej samej właściwości na różnych poziomach szczegółowości.

Mam nadzieję, że podobał Ci się ten samouczek. Dziękuje za przeczytanie!