国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah hujung hadapan web tutorial css Butiran Mengejutkan Pembolehubah CSS - Menggunakan var() dan Contoh Hebat

Butiran Mengejutkan Pembolehubah CSS - Menggunakan var() dan Contoh Hebat

Nov 15, 2024 am 05:49 AM

Ini ialah separuh kedua siaran CSS Variable saya, separuh pertama sudah tiba.
Dalam artikel ini kita akan melihat butiran var(). Dan dua contoh hebat:

  • Animasi menggunakan Pembolehubah CSS
  • Togol mod gelap CSS tulen dengan pengesanan tetapan sistem

The Surprising Details of CSS Variables - Using var() and Cool Examples

Menggunakan var()

Var() mengakses nilai sifat tersuai (pembolehubah CSS). Sintaksnya adalah seperti berikut:

var( <custom-property-name>, <fallback-value>? )

Peraturan Asas

  1. Parameter pertama mestilah pembolehubah CSS: Nilai langsung, seperti var(20px), akan mengakibatkan ralat, kerana var() hanya menerima nama sifat tersuai.

  2. var() tidak boleh menggantikan nama harta: Dalam erti kata lain, anda tidak boleh menulis sesuatu seperti var(--prop-name): 20px; kerana var() terhad untuk digunakan dalam nilai hartanah sahaja.

.foo {
  margin: var(20px); /* Error, 20px is not a CSS variable */

  --prop-name: margin-top;
  var(--prop-name): 20px; /* Error, cannot use var() this way */
}

Tingkah Laku Terperinci

  1. var(--b, fallback_value) Fallback: Parameter kedua bertindak sebagai nilai fallback, digunakan apabila --b tidak sah.

  2. var(--c,) Sintaks dengan Sandaran Kosong: Jika nilai sandaran dibiarkan kosong, sintaks kekal sah dan akan lalai kepada nilai kosong jika --c tidak sah .

  3. Koma Berbilang: Dalam var(--d, var(--e), var(--f), var(--g)), semuanya selepas koma pertama ialah dianggap sebagai sandaran, jadi jika --d tidak sah, ungkapan var() menilai var(--e), var(--f), var(--g) sebagai satu sandaran, kepada tentukan keputusan.

  4. var() sebagai Token CSS Lengkap: Fungsi bertindak sebagai token CSS lengkap, seperti 20px. Oleh itu, var(--size)var(--unit) tidak akan mencipta 20px dan dianggap tidak sah.

  5. Menggunakan paral dengan Pembolehubah CSS: Menetapkan parap kepada pembolehubah CSS bermakna ia tidak sah. Untuk memaparkan awalan sebagai nilai, ia mesti diletakkan dalam sandaran.

  6. url() dan var() Penggunaan: Memandangkan url() dianggap sebagai token CSS yang lengkap, anda perlu mentakrifkan url() penuh dalam pembolehubah.

:root {
  /* 1. */
  margin: var(--b, 20px); /* Uses 20px if --b is invalid */

  /* 2. */
  padding: var(--c,) 20px; /* Falls back to 20px if --c is invalid */

  /* 3. */
  font-family: var(--fonts, "lucida grande", tahoma, Arial); /* Uses fallback font stack if --fonts is invalid */

  /* 4. */
  --text-size: 12;
  --text-unit: px;
  font-size: var(--text-size)var(--text-unit); /* Invalid, as it does not resolve to 12px */

  /* 5. */
  --initialized: initial;
  background: var(--initialized, initial); /* Results in background: initial */

  /* 6. */
  --invalid-url: "https://useme.medium.com";
  background: url(var(--invalid-url)); /* Invalid, as url() cannot parse var() */

  --valid-url: url(https://useme.medium.com);
  background: var(--valid-url); /* Correct usage */
}

Resolusi dan Skop Pembolehubah

Pembolehubah CSS, seperti sifat CSS lain, ikut peraturan khusus CSS untuk skop dan kekhususan. Memahami cara faktor ini mempengaruhi pembolehubah CSS membolehkan kawalan yang lebih tepat.

Pembolehubah Global dan Skop:
Pembolehubah yang ditakrifkan dalam :root digunakan secara global, manakala pembolehubah yang ditakrifkan dalam pemilih mempunyai skop yang lebih terhad.

   :root {
     --main-color: blue; /* Globally applied */
   }

   .container {
     --main-color: green; /* Scoped, applies only within .container */
   }

Keutamaan mengikut Kekhususan:
Kekhususan yang lebih tinggi akan mengatasi kekhususan yang lebih rendah untuk pembolehubah CSS.

var( <custom-property-name>, <fallback-value>? )
.foo {
  margin: var(20px); /* Error, 20px is not a CSS variable */

  --prop-name: margin-top;
  var(--prop-name): 20px; /* Error, cannot use var() this way */
}

Dalam contoh ini, warna latar belakang .box kekal putih, kerana --background telah diselesaikan kepada rgb(255, 255, 255) sebelum .box ditakrifkan semula --hijau: 0.

Menilai Semula Pembolehubah dengan Kelas Pseudo:
Pembolehubah berubah berdasarkan keadaan kelas pseudo apabila ditakrifkan pada tahap yang sama.

:root {
  /* 1. */
  margin: var(--b, 20px); /* Uses 20px if --b is invalid */

  /* 2. */
  padding: var(--c,) 20px; /* Falls back to 20px if --c is invalid */

  /* 3. */
  font-family: var(--fonts, "lucida grande", tahoma, Arial); /* Uses fallback font stack if --fonts is invalid */

  /* 4. */
  --text-size: 12;
  --text-unit: px;
  font-size: var(--text-size)var(--text-unit); /* Invalid, as it does not resolve to 12px */

  /* 5. */
  --initialized: initial;
  background: var(--initialized, initial); /* Results in background: initial */

  /* 6. */
  --invalid-url: "https://useme.medium.com";
  background: url(var(--invalid-url)); /* Invalid, as url() cannot parse var() */

  --valid-url: url(https://useme.medium.com);
  background: var(--valid-url); /* Correct usage */
}

Seterusnya, mari kita terokai beberapa kes penggunaan lanjutan untuk pembolehubah CSS:

Contoh Penggunaan A: Animasi

Pembolehubah CSS tidak boleh dianimasikan secara langsung kerana penyemak imbas tidak boleh membuat kesimpulan jenis data. Untuk menyelesaikan masalah ini, gunakan @property untuk menentukan jenis pembolehubah dan nilai awal, membolehkan penyemak imbas memahami cara menghidupkan pembolehubah.

   :root {
     --main-color: blue; /* Globally applied */
   }

   .container {
     --main-color: green; /* Scoped, applies only within .container */
   }
   :root {
     --main-color: blue;
   }

   .section {
     --main-color: green; /* Overrides :root definition */
   }

   .section p {
     color: var(--main-color); /* Shows green */
   }

   p {
     color: var(--main-color); /* Shows blue */
   }

Menambah Togol Manual yang Sejajar dengan Keutamaan Sistem

Walaupun tetapan sistem mengawal tema secara lalai, kami mungkin mahu memberi pengguna pilihan untuk menogol antara tema terang dan gelap secara manual. Untuk mencapai ini, kami boleh menambah kotak pilihan untuk menogol keadaan. Sebaik-baiknya, apabila kotak pilihan dipilih, ia menunjukkan mod gelap dan apabila dinyahpilih, ia mewakili mod cahaya.

Walau bagaimanapun, CSS tidak dapat mengesan tetapan sistem secara automatik dan menukar keadaan kotak semak dengan sewajarnya, terutamanya dalam mod gelap. Untuk mengendalikan pengehadan ini, kita boleh menggunakan pembolehubah CSS dan pemilih :has() untuk mengawal penukaran tema berdasarkan keadaan kotak pilihan.

Saya ingin mencuba mencapai ini sepenuhnya dengan CSS, tetapi memandangkan sistem pengguna mungkin ditetapkan sama ada kepada mod terang atau gelap, CSS sahaja tidak boleh menanda kotak semak secara automatik dalam mod gelap.

Jika kami tidak dapat memindahkan gunung, kami akan menghalakan laluan itu. Inilah penyelesaiannya:

  • Kami akan menggunakan CSS untuk membuat suis togol, dengan keadaan "MATI" visual mewakili mod cahaya dan "HIDUP" mewakili mod gelap.

The Surprising Details of CSS Variables - Using var() and Cool Examples
The Surprising Details of CSS Variables - Using var() and Cool Examples

  • Apabila sistem ditetapkan kepada mod cahaya: Apabila kotak pilihan dinyahpilih, ia sepadan dengan keadaan "MATI" (mod cahaya). Apabila dipilih, ia sepadan dengan keadaan "HIDUP" (mod gelap).

  • Apabila sistem ditetapkan kepada mod gelap: Memandangkan pilihan sistem diterbalikkan, keadaan visual juga terbalik. Apabila kotak pilihan dinyahpilih, ia sepadan dengan "HIDUP" (mod gelap). Apabila dipilih, ia sepadan dengan "MATI" (mod cahaya).

Untuk mencapai kesan ini, kita memerlukan dua elemen utama:

Pertama: Pembolehubah yang Berubah Berdasarkan Tetapan Sistem dan Keadaan Kotak Semak

var( <custom-property-name>, <fallback-value>? )

Kedua: Togol Gelagat Berdasarkan Tetapan Sistem untuk Perwakilan Keadaan dan HIDUP/MATI yang ditandai

Sifat CSS mod terang dan gelap diterbalikkan bergantung pada tetapan sistem.

.foo {
  margin: var(20px); /* Error, 20px is not a CSS variable */

  --prop-name: margin-top;
  var(--prop-name): 20px; /* Error, cannot use var() this way */
}

Memudahkan Persediaan Pembolehubah dengan Trik Pembolehubah CSS

Di sini kami akan menggunakan teknik Togol Angkasa untuk memudahkan tetapan pembolehubah. Berikut ialah kodnya, diikuti dengan penjelasan tentang cara ia berfungsi:

:root {
  /* 1. */
  margin: var(--b, 20px); /* Uses 20px if --b is invalid */

  /* 2. */
  padding: var(--c,) 20px; /* Falls back to 20px if --c is invalid */

  /* 3. */
  font-family: var(--fonts, "lucida grande", tahoma, Arial); /* Uses fallback font stack if --fonts is invalid */

  /* 4. */
  --text-size: 12;
  --text-unit: px;
  font-size: var(--text-size)var(--text-unit); /* Invalid, as it does not resolve to 12px */

  /* 5. */
  --initialized: initial;
  background: var(--initialized, initial); /* Results in background: initial */

  /* 6. */
  --invalid-url: "https://useme.medium.com";
  background: url(var(--invalid-url)); /* Invalid, as url() cannot parse var() */

  --valid-url: url(https://useme.medium.com);
  background: var(--valid-url); /* Correct usage */
}

Kunci di sini adalah dalam baris --warna latar belakang: var(--light, #fbfbfb) var(--dark, #121212);. Di sini, warna latar belakang bergantung pada nilai --terang dan --gelap, dengan berkesan mensimulasikan if/else dalam harta itu.

Bagaimanakah ia berfungsi? Pada mulanya, --light: var(--ON); dan --ON: awal; jadikan --ON keadaan tidak sah. Sementara itu, --OFF ditetapkan sebagai rentetan kosong. Apabila digunakan pada var(--light, #fbfbfb) var(--dark, #121212), pembolehubah --light yang tidak sah akan lalai kepada #fbfbfb dan pembolehubah --dark yang sah (kosong) membenarkan --background-color untuk menyamai #fbfbfb.

Semua pembolehubah warna lain mengikut logik yang sama, melaraskan berdasarkan keadaan --terang dan --gelap. Dengan cara ini, setiap pembolehubah warna hanya perlu ditakrifkan sekali.

Menukar keadaan menjadi mudah. Jika mod gelap aktif, gunakan --light: var(--OFF); dan --dark: var(--ON);. Dalam mod cahaya, terbalikkannya. Walaupun tidak serta-merta intuitif, kaedah ini pada masa ini adalah yang paling berkesan dengan CSS. Jika ada penyelesaian yang lebih baik, ia patut diterokai.

Contoh lengkap: Contoh CodePen


Ringkasan

CSS terus berkembang, dengan pembolehubah CSS tersedia dalam penyemak imbas utama sejak 2016. Ciri baharu seperti @property dan :has() memperluaskan lagi fleksibiliti pembolehubah CSS. Digabungkan dengan alatan baharu yang lain, pembolehubah CSS menjadi lebih berkuasa—sebagai contoh, mereka kini boleh meningkatkan animasi dipacu tatal untuk mencipta kesan dinamik visual. Sebagai elemen teras untuk menyimpan keadaan dalam CSS, sama seperti pembolehubah dalam mana-mana bahasa pengaturcaraan, pemahaman yang kukuh tentang pembolehubah CSS akan terbukti tidak ternilai untuk penggayaan dan reka bentuk yang lebih canggih.


Rujukan

  • https://stackoverflow.com/questions/42330075/is-there-a-way-to-interpolate-css-variables-with-url/42331003#42331003
  • https://kizu.dev/cyclic-toggles/#was-this-always-possible
  • https://dev.to/afif/what-no-one-told-you-about-css-variables-553o
  • https://hackernoon.com/cool-css-variable-tricks-to-try-uyu35e9
  • https://lea.verou.me/blog/2020/10/the-var-space-hack-to-toggle-multiple-values-with-one-custom-property/

Atas ialah kandungan terperinci Butiran Mengejutkan Pembolehubah CSS - Menggunakan var() dan Contoh Hebat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apa itu 'menyekat CSS'? Apa itu 'menyekat CSS'? Jun 24, 2025 am 12:42 AM

CSS Blok halaman yang diberikan kerana pelayar melihat CSS dalam talian dan luaran sebagai sumber utama secara lalai, terutamanya dengan stylesheet yang diimport, header sejumlah besar CSS sebaris, dan gaya pertanyaan media yang tidak dapat dioptimumkan. 1. Ekstrak CSS kritikal dan membenamkannya ke HTML; 2. Kelewatan memuatkan CSS bukan kritikal melalui JavaScript; 3. Gunakan atribut media untuk mengoptimumkan pemuatan seperti gaya cetak; 4. Memampatkan dan menggabungkan CSS untuk mengurangkan permintaan. Adalah disyorkan untuk menggunakan alat untuk mengekstrak CSS utama, menggabungkan REL = "Preload" pemuatan asynchronous, dan menggunakan media yang ditangguhkan dengan munasabah untuk mengelakkan pemisahan yang berlebihan dan kawalan skrip kompleks.

Luaran vs CSS Dalaman: Apakah pendekatan terbaik? Luaran vs CSS Dalaman: Apakah pendekatan terbaik? Jun 20, 2025 am 12:45 AM

Thebestapproachforcssdependonstantheproject'ssspecificneeds.forlargerprojects, externalcssisbetterduetomaintainabilityability;

Adakah CSS saya mesti berada di bawah kes? Adakah CSS saya mesti berada di bawah kes? Jun 19, 2025 am 12:29 AM

Tidak, cssdoesnothavetobeinlowercase.however, menggunakanLowerCaseisRecommendorfendfor: 1) Consistencyandreadability, 2) Mengelakkaningerrorsinrelatedtechnologies, 3) potensiformanceBenefits, dan4) peningkatan yang lebih baik.

Kepekaan kes CSS: Memahami apa yang penting Kepekaan kes CSS: Memahami apa yang penting Jun 20, 2025 am 12:09 AM

Cssismostlycase-insensitive, buturlsandfontfamilynamesarecase-sensitif.1) propertiesandvalueslikecolor: merah; arenotcase-sensitif.2) urlsmustmatchtheserver'scase, mis.,

Apakah AutoPrefixer dan bagaimana ia berfungsi? Apakah AutoPrefixer dan bagaimana ia berfungsi? Jul 02, 2025 am 01:15 AM

AutoPrefixer adalah alat yang secara automatik menambah awalan vendor ke atribut CSS berdasarkan skop penyemak imbas sasaran. 1. Ia menyelesaikan masalah mengekalkan awalan secara manual dengan kesilapan; 2. Bekerja melalui borang pemalam postcss, menghuraikan CSS, menganalisis atribut yang perlu diawali, dan menjana kod mengikut konfigurasi; 3. Langkah-langkah penggunaan termasuk memasang pemalam, menetapkan senarai pelayar, dan membolehkan mereka dalam proses membina; 4. Nota termasuk tidak menambah awalan secara manual, menyimpan kemas kini konfigurasi, awalan tidak semua atribut, dan disyorkan untuk menggunakannya dengan preprocessor.

Apakah kaunter CSS? Apakah kaunter CSS? Jun 19, 2025 am 12:34 AM

Csscounterscanautomaticallynumbersectionsandlists.1) useCounter-resettoinitialize, counter-incrementToinCrease, andCounter () orcounters () todisplayvalues.2) CombinWithjavascriptfordynamicContentToenSureAccurateupdates.

CSS: Bilakah kes perkara (dan kapan tidak)? CSS: Bilakah kes perkara (dan kapan tidak)? Jun 19, 2025 am 12:27 AM

Dalam CSS, nama pemilih dan atribut adalah sensitif kes, manakala nilai, warna yang dinamakan, URL, dan atribut tersuai adalah sensitif kes. 1. Nama pemilih dan atribut adalah kes-tidak sensitif, seperti warna latar belakang dan warna latar belakang adalah sama. 2. Warna heksadesimal dalam nilai adalah sensitif kes, tetapi warna bernama adalah sensitif kes, seperti merah dan merah tidak sah. 3. URL adalah sensitif kes dan boleh menyebabkan masalah pemuatan fail. 4. Sifat tersuai (pembolehubah) adalah sensitif kes, dan anda perlu memberi perhatian kepada konsistensi kes apabila menggunakannya.

Sensitiviti kes dalam CSS: pemilih, sifat, dan nilai yang dijelaskan Sensitiviti kes dalam CSS: pemilih, sifat, dan nilai yang dijelaskan Jun 19, 2025 am 12:38 AM

Cssselectorsandpropertynamesarecase-insensitive, whilevaluescanbecase-sensitivedependingoncontext.1) selectorslike'div'and'div'areequivalent.2) propertiesuchas'background-color'and'and'aretaretreatheatthlegase.3)

See all articles