
Saya telah bereksperimen dengan variabel CSS untuk beberapa waktu sekarang. Jika Anda belum mendekati mereka, Anda dapat menggunakan panduan singkat ini untuk dengan cepat menemukan jalan keluar dan mulai bekerja.
Apa ini
Contoh aplikasi sederhana untuk tombol dengan cakupanVariabel CSS memungkinkan Anda untuk menentukan nilai yang dapat digunakan kembali dalam CSS.
Mereka muncul sejak lama. Baru-baru ini, mereka mulai mendapatkan popularitas karena dukungan
browser yang lebih luas.
Jika Anda menggunakan preprocessor, seperti SASS, maka Anda sudah terbiasa dengan variabel. Sekarang Anda dapat melakukan hal yang sama tanpa preprocessor.
Mengapa menggunakan variabel gaya?
Variabel memungkinkan kita untuk mematuhi prinsip KERING (jangan ulangi sendiri). Berkat mereka, kami juga memiliki cara untuk membuat titik referensi tunggal untuk nilai duplikat. Jika Anda menggunakan preprosesor, maka, kemungkinan besar, keuntungan dari pendekatan ini sudah akrab bagi Anda. Paling sering, ini digunakan untuk mengatur warna dasar, yang digunakan untuk banyak elemen.
Ulangi warna latar belakang untuk banyak pemilihDalam cuplikan di atas, nilai
#e74c3c
dapat dan harus berupa variabel. Jika kita membuat variabel dari nilai ini, kita mendapatkan satu titik yang bisa direferensikan. Ini mengurangi risiko bug dan masalah gaya, karena memfasilitasi pemeliharaan lebih lanjut.
Membuat titik referensi menggunakan variabelDalam cuplikan kedua, saya menggunakan preprocessor untuk menunjukkan bagaimana Anda dapat menggunakan variabel untuk nilai
background-color
.
Mengapa tidak menggunakan variabel preprosesor alih-alih variabel CSS asli?
Pertanyaan yang bagus Dalam kebanyakan kasus, Anda akan lebih memilih untuk tetap berkomitmen pada variabel preprosesor. Ini terjadi jika Anda sudah menggunakannya. Tapi Anda bisa memanfaatkan kedua pendekatan sekaligus. Ini menjadi relevan ketika menjadi perlu untuk sepenuhnya memanfaatkan kemampuan variabel CSS asli. Lebih lanjut tentang ini nanti.
Variabel CSS asli harus digunakan ketika:
- Anda tidak memiliki preprosesor atau Anda tidak menggunakannya.
- Anda ingin memanfaatkan variabel CSS asli.
Manfaat Utama Variabel CSS Asli
Menurut pendapat saya, variabel CSS asli memiliki dua keuntungan besar.
Yang pertama. Mereka diperbarui saat runtime! Mereka dapat dikontrol menggunakan kueri media, status, atau bahkan JavaScript. Browser akan menerapkan perubahan yang dilakukan. Ini membuka banyak kemungkinan.
Selain itu, variabel CSS memungkinkan untuk ruang lingkup. Ini berarti bahwa, misalnya, Anda bisa mengubah gaya atau perilaku elemen dengan memperbarui nilai suatu variabel. Jika tidak, Anda harus mendaftarkan gaya baru untuk elemen ini dari awal. Akibatnya, volume CSS pada output berkurang.
Bukan sintaks yang paling indah
Mari kita lihat sebuah contoh.

Apa itu
:root
pseudo? Semuanya logis: itu adalah pseudo-selector dari root pohon. Selector
:root
dapat digunakan untuk mendefinisikan variabel global. Dalam kasus ini, kami mendefinisikan nilai
rebeccapurple
untuk variabel
--primary
.

Untuk mendefinisikan variabel, dua tanda hubung digunakan sebagai awalan.

Untuk menggunakan variabel, kita membutuhkan fungsi
var
.
Dan apa yang terjadi ketika kita merujuk ke variabel yang nilainya tidak disetel? Dalam hal ini, Anda dapat mengatur nilai fallback atau nilai default. Fungsi
var
mendukung parameter opsional kedua, yang terkait dengan nilai fallback atau nilai default.

Cuplikan ini menetapkan gaya sumber untuk tag
button
. Jika memungkinkan untuk
background-color
, nilai
--btn-color
. Jika variabel tidak ada atau nilainya tidak disetel, nilai -
--primary
.
Tidak perlu menggunakan variabel untuk mundur kami. Anda dapat mengambil nilainya. Tetapi dengan variabel akan lebih mudah untuk menerapkan dukungan kode.
Perhatikan bahwa tidak ada gaya yang dideklarasikan untuk
button.btn
. Sebaliknya, nilainya diperbarui. Sekarang tepat untuk melanjutkan ke kaskade dan ruang lingkup.
Cascading dan Cakupan
Ketika bekerja dengan variabel, cascading diperhitungkan, serta ruang lingkup variabel. Pada contoh sebelumnya, variabel dideklarasikan di
:root
pseudo-
:root
. Semua variabel di pemilih
:root
memiliki cakupan global.
Dalam satu contoh di atas
--primary
tersedia untuk semua penyeleksi. Karena ruang lingkup, nilai ini dapat diganti. Misalnya, kami ingin nilai
--primary
berubah untuk kelas
premium
.

Dalam fragmen ini, nilai variabel
--primary
dari elemen kelas
premium
adalah
dodgerblue
. Artinya, jika tidak ada kelas yang diterapkan pada
button
, nilai variabel adalah
rebeccapurple
. Namun, jika Anda menerapkan kelas
premium
, warnanya berubah menjadi
dodgerblue
.
Perlu dicatat bahwa, seperti gaya inline, variabel CSS inline memiliki prioritas tertinggi.

Dalam fragmen ini, warna latar tombol akan diatur ke
red
, meskipun fakta bahwa kelas
premium
digunakan di sini. Ini terjadi karena nilai
--primary
dijelaskan secara langsung di dalam tag.
Manajemen nilai
Anda dapat mengontrol nilai variabel CSS menggunakan aturan CSS lainnya. Pendekatan utama adalah pertanyaan media dan perubahan status.
Misalnya, nilai variabel dapat berubah ketika lebar layar melebihi nilai tertentu.

Perubahan akan memulai redraw browser dan menunjukkan hasilnya kepada pengguna.
Dalam hal ini, gradien latar belakang akan berubah jika lebarnya melebihi
768px
.
Bagaimana cara mengelola variabel menggunakan status? Misalnya, ambil
button
. Variabel CSS akan diperbarui berdasarkan status
button
.

Dalam hal ini, Anda dapat menyesuaikan gaya tombol berdasarkan pada status
:active
.
Mengelola Nilai Menggunakan JavaScript
Mengelola variabel dari CSS sangat mudah. Tetapi untuk benar-benar mendapatkan kendali atas mereka, Anda harus mengontrolnya menggunakan JavaScript. Untungnya, ini nyata.
Metode
setProperty
memungkinkan
setProperty
untuk mengatur dan mengelola variabel gaya elemen.

Bagaimana cara memperbarui set variabel di
:root
pseudo-
:root
? Pertanyaan yang bagus Anda perlu mengatur properti
documentElement
untuk
documentElement
.

Saat Anda dapat memanipulasi variabel CSS dengan cara ini, ada banyak kemungkinan. Ingin tahu tentang melacak posisi kursor dengan acara
mousemove
.
Menggunakan calc () dan membuang unit
Cobalah untuk tidak menggunakan unit dalam variabel. Ini akan memudahkan perawatan lebih lanjut.

Fungsi
calc()
memungkinkan Anda untuk menormalkan dan menetapkan nilai dengan unit yang diinginkan.

Variabel CSS bahkan dapat digunakan untuk menyimpan informasi tentang unit yang disukai. Untuk kejelasan, kami mengambil "1px" dalam fragmen, tetapi Anda dapat menggantinya dengan "1pt", "1rem", dll.
Kurangnya unit biasanya lebih relevan ketika nilai ditetapkan dari JavaScript. Saat memproses nilai murni, skrip kami abstrak dari CSS. Sambungan terputus.

Ketika unit terkandung dalam CSS, layanan juga melewati CSS.
Contoh aplikasi
Saya masih mempelajari berbagai contoh penggunaan variabel CSS. Pertama-tama, tema dinamis muncul di pikiran. Melacak kursor dan menggulir layar juga merupakan aplikasi yang menarik. Saya sudah menyiapkan
materi pelatihan, yang dapat ditemukan di bawah.
Contoh dengan anjing dan bola
Mari kita bekerja bersama satu contoh!
Di sini kita cukup melacak posisi kursor dan memperbarui posisi dua emoji.

Hal utama di sini adalah untuk mentransfer emoji dari titik pusat menggunakan
translate
dan pada saat yang sama menerapkan
transition-delay
untuk anjing
Bagaimana cara memperbarui situasi? Menggunakan variabel untuk
--y
dan
--y
.

Bagaimana cara membuat anjing ketinggalan?
transition-delay
diterapkan. Efek perlambatan yang kompleks juga dapat dicapai dengan menggunakan
transition-timing-function
.

Tetap hanya memperbarui variabel-variabel ini untuk
mousemove
.

Itu saja. Beberapa perbaikan kecil lagi, dan sesuatu seperti itu ternyata:

Kekurangan
Sejauh ini, bekerja dengan variabel CSS telah berjalan cukup lancar. Saya jarang menemui situasi di mana sesuatu tidak berhasil. Berikut adalah beberapa kemungkinan yang ingin saya lihat untuk variabel CSS.
- Animasi variabel. Pada artikel ini, saya tidak berbicara tentang animasi sama sekali. Anda dapat menggunakan variabel untuk itu. Tetapi animasi dari nilai-nilai itu sendiri tidak dapat dilakukan.
- Variabel CSS tidak dapat digunakan dalam penyeleksi. Ini logis, tetapi akan lebih bagus jika tingkat interpolasi seperti itu tersedia. Menggunakan variabel dalam pemilih n-child akan menjadi keren.
Kesimpulan
Saya suka bekerja dengan variabel CSS. Semakin saya melakukannya, semakin banyak contoh aplikasi yang muncul di benak saya.
Berkat artikel ini, Anda sendiri dapat mulai mempelajari variabel CSS.
Jika Anda tertarik untuk mendapatkan ikhtisar variabel CSS yang lebih rinci, lihat
video ini.
MENCARI. RUMAH - proyek ini mengumpulkan lebih dari 150 titik pandang kaca di 40 negara. Anda dapat dengan cepat menjalankan perintah host, ping, traceroute, dan mtr.
