


Poking di CSS jika () berfungsi sedikit lagi: THE COLOR COLOR THEing
Chrome 137 menghantar fungsi CSS IF (), jadi ia benar -benar mungkin kita akan melihat pelayar lain melaksanakannya, walaupun sukar untuk mengetahui dengan tepat ketika. Walau apa pun, jika () membolehkan kita menggunakan nilai-nilai secara kondusif, yang boleh kita lakukan dengan pertanyaan dan fungsi lain (misalnya, pertanyaan media dan fungsi cahaya-gelap ()), jadi saya pasti anda tertanya-tanya: Apa sebenarnya jika () lakukan?
Sunkanmi memberi kami gambaran yang baik mengenai fungsi semalam, mencucuk sintaks pada tahap yang tinggi. Saya ingin mencucuknya sedikit lebih sukar dalam artikel ini, masuk ke dalam beberapa kemungkinan penggunaan dunia nyata.
Untuk merakam, jika () secara kondisen memberikan nilai kepada harta berdasarkan nilai pembolehubah CSS. Sebagai contoh, kita boleh memberikan nilai yang berbeza kepada sifat warna dan latar belakang berdasarkan nilai --THEME:
- --THEME: "Shamrock"
- Warna: HSL (146 50% 3%)
- Latar Belakang: HSL (146 50% 40%)
- --THEME: Apa-apa lagi
- Warna: HSL (43 74% 3%)
- Latar Belakang: HSL (43 74% 64%)
: root { / * Tukar kembali ke nilai 'lain' */ --THEME: "Shamrock"; badan { warna: jika (gaya (-tema: "shamrock"): HSL (146 50% 3%); lain: HSL (43 74% 3%)); Latar Belakang: Jika (Gaya (-Tema: "Shamrock"): HSL (146 50% 40%); lain: HSL (43 74% 64%)); } }
Saya tidak suka sintaks (terlalu banyak kolon, kurungan, dan sebagainya), tetapi kita boleh memformatnya seperti ini (yang saya fikir sedikit lebih jelas):
Warna: jika ( Gaya (-Tema: "Shamrock"): HSL (146 50% 3%); lain: HSL (43 74% 3%) );
Kita sepatutnya dapat melakukan beberapa perkara yang gila dengan jika (), dan saya berharap ia menjadi kes akhirnya, tetapi saya melakukan beberapa ujian dan mengetahui bahawa sintaks di atas adalah satu -satunya yang berfungsi. Kami tidak boleh mendasarkan keadaan pada nilai harta CSS biasa (bukannya harta tersuai), atribut HTML (menggunakan ATTR ()), atau sebarang nilai lain. Buat masa ini, sekurang -kurangnya, keadaan mesti berdasarkan nilai harta tersuai (pembolehubah CSS).
Meneroka apa yang boleh kita lakukan dengan jika ()
Berdasarkan contoh pertama, jelas bahawa kita boleh menggunakan jika () untuk bertemakan (dan sistem reka bentuk secara keseluruhan). Walaupun kita boleh menggunakan fungsi cahaya gelap () untuk ini, bagaimana jika tema tidak terang dan gelap, atau bagaimana jika kita mahu mempunyai lebih daripada dua tema atau mod cahaya dan gelap untuk setiap tema? Nah, itulah jika () boleh digunakan.
Pertama, mari kita buat lebih banyak tema/lebih banyak syarat:
: root { /* Shamrock | Saffron | Amethyst */ --THEME: "Saffron"; /* ... saya pilih awak! */ badan { Warna: jika ( Gaya (-Tema: "Shamrock"): HSL (146 50% 3%); Gaya (-Tema: "Saffron"): HSL (43 74% 3%); Gaya (-Tema: "Amethyst"): HSL (282 47% 3%) ); Latar Belakang: jika ( Gaya (-Tema: "Shamrock"): HSL (146 50% 40%); Gaya (-Tema: "Saffron"): HSL (43 74% 64%); Gaya (-Tema: "Amethyst"): HSL (282 47% 56%) ); Peralihan: 300ms; } }
Cukup mudah, tetapi terdapat beberapa perkara yang mudah dimusnahkan. Pertama, tidak ada "keadaan lain" kali ini, yang bermaksud bahawa jika tema itu tidak Shamrock, Saffron, atau Amethyst, gaya penyemak imbas lalai digunakan. Jika tidak, fungsi IF () menyelesaikan nilai pernyataan sebenar yang pertama , iaitu tema safron dalam kes ini. Kedua, peralihan berfungsi keluar dari kotak; Dalam demo di bawah, saya telah menambah antara muka pengguna untuk menukarkan --THEME, dan untuk peralihan, secara harfiah hanya peralihan: 300ms bersama fungsi IF ():
Nota: Jika tema-swapping dikawal pengguna, seperti memilih pilihan, anda sebenarnya tidak memerlukan jika () sama sekali. Anda hanya boleh menggunakan logik yang saya gunakan pada permulaan demo (: root: mempunyai (#shamrock: diperiksa) { / * styles * /}). Amit Sheen mempunyai demonstrasi yang sangat baik di majalah Smashing.
Untuk menjadikan kod lebih banyak dipelihara, kita boleh meluncurkan warna ke dalam pembolehubah CSS juga, kemudian gunakannya dalam fungsi IF (), kemudian luncurkan fungsi IF () ke dalam pembolehubah CSS:
/ * Persediaan */ : root { /* Shamrock | Saffron | Amethyst */ --THEME: "Shamrock"; /* ... saya pilih awak! */ / * Warna asas */ --Shamrock: HSL (146 50% 40%); --Saffron: HSL (43 74% 64%); --Amethyst: HSL (282 47% 56%); / * Warna asas, tetapi pada 3% ringan */ --ShamRock-Perlengkapan: HSL (dari VAR (-Shamrock) HS 3%); --Saffron-Perlengkapan: HSL (dari VAR (-Saffron) HS 3%); --Amethyst-Perlengkapan: HSL (dari var (-amethyst) HS 3%); -Background: jika ( gaya (-tema: "shamrock"): var (-shamrock); Gaya (-Tema: "Saffron"): var (-Saffron); Gaya (-Tema: "Amethyst"): var (-amethyst) ); -warna: jika (( gaya (-tema: "shamrock"): var (-shamrock-complementari); gaya (-tema: "safron"): var (-saffron-pelengkap); Gaya (-Tema: "Amethyst"): var (-Amethyst-Perlengkapan) ); / * Penggunaan */ badan { /* Satu pemboleh ubah, semua ifs! */ latar belakang: var (-latar belakang); warna: var (-warna); aksen-warna: var (-warna); /* Tidak dapat melupakan ini! */ Peralihan: 300ms; } }
Serta menggunakan pembolehubah CSS dalam fungsi IF (), kita juga boleh bersarang fungsi lain. Dalam contoh di bawah, saya telah melemparkan cahaya gelap () di sana, yang pada dasarnya membalikkan warna untuk mod gelap:
-Background: jika ( gaya (-tema: "shamrock"): cahaya-gelap (var (-shamrock), var (-shamrock-complementery)); gaya (-tema: "safron"): cahaya gelap (var (-safron), var (-saffron-pelengkap)); Gaya (-Tema: "Amethyst"): cahaya-gelap (var (-amethyst), var (-amethyst-complementery)) );
jika () vs pertanyaan gaya kontena
Jika anda tidak menggunakan pertanyaan gaya kontena sebelum ini, mereka pada dasarnya memeriksa sama ada bekas mempunyai pembolehubah CSS tertentu (sama seperti fungsi IF ()). Inilah contoh/demo yang sama tetapi dengan pertanyaan gaya kontena dan bukannya fungsi IF ():
: root { /* Shamrock | Saffron | Amethyst */ --THEME: "Shamrock"; /* ... saya pilih awak! */ --Shamrock: HSL (146 50% 40%); --Saffron: HSL (43 74% 64%); --Amethyst: HSL (282 47% 56%); --ShamRock-Perlengkapan: HSL (dari VAR (-Shamrock) HS 3%); --Saffron-Perlengkapan: HSL (dari VAR (-Saffron) HS 3%); --Amethyst-Perlengkapan: HSL (dari var (-amethyst) HS 3%); badan { /* Bekas telah memilih Shamrock! */ @Container Style (-Tema: "Shamrock") { -background: cahaya-gelap (var (-shamrock), var (-shamrock-complementari)); -warna: cahaya-gelap (var (-shamrock-complementari), var (-shamrock)); } @Container Style (-Tema: "Saffron") { -background: cahaya-gelap (var (-safron), var (-saffron-pelengkap)); -warna: cahaya-gelap (var (-saffron-pelengkap), var (-saffron)); } @Container Style (-Tema: "Amethyst") { -background: cahaya-gelap (var (-amethyst), var (-amethyst-complementari)); -warna: cahaya-gelap (var (-amethyst-complementari), var (-amethyst)); } latar belakang: var (-latar belakang); warna: var (-warna); aksen-warna: var (-warna); Peralihan: 300ms; } }
Seperti yang anda lihat, di mana jika () memudahkan nilai bersyarat, pertanyaan gaya kontena memudahkan sifat dan nilai bersyarat. Selain itu, ia benar -benar hanya sintaks yang berbeza.
Perkara tambahan yang boleh anda lakukan dengan jika () (tetapi mungkin tidak menyedari)
Semak sama ada pembolehubah CSS wujud:
/ * Menyembunyikan ikon jika pemboleh ubah tidak ditetapkan */ .icon { Paparan: jika ( gaya (-ikon keluarga): blok sebaris; lain: Tiada ); }
Buat pernyataan bersyarat yang lebih kompleks:
H1 { saiz fon: jika (( gaya (-besar-besaran: benar): xxx-besar; Gaya (-Tema: "Themewithlargerheadings"): XXX-Large ); }
Semak jika dua pembolehubah CSS sepadan:
/ * Jika #s2 mempunyai latar belakang yang sama dengan #s1, tambahkan sempadan */ #s2 { Border-top: jika ( Gaya (-S2-Background: var (-S1-background)): merah pepejal nipis ); }
jika () dan calc (): apabila matematik tidak matematik
Ini tidak akan berfungsi (mungkin seseorang dapat membantu saya menentukan mengapa):
div { / * 3/3 = 1 */ --Calc: Calc (3/3); / * Biru, kerana jika () tidak akan mengira -calc */ Latar Belakang: jika (gaya (-calc: 1): merah; lain: biru); }
Untuk membuat jika () hitung -CALC, kita perlu mendaftarkan pembolehubah CSS menggunakan @Property terlebih dahulu, seperti ini:
@Property -Calc { Sintaks: "<number> "; nilai awal: 0; Warisan: palsu; }</number>
Pemikiran penutupan
Walaupun saya tidak berminat dengan sintaks dan bagaimana ia tidak boleh dibaca kadang -kadang boleh kelihatan (terutamanya jika ia diformat pada satu baris), saya mega teruja untuk melihat bagaimana () berkembang. Saya suka dapat menggunakannya dengan sifat biasa (contohnya, warna: jika (gaya (latar belakang: putih): hitam; gaya (latar belakang: hitam): putih);) Untuk mengelakkan perlu menetapkan pembolehubah CSS jika mungkin.
Ia juga akan mengagumkan jika pengiraan Calc () boleh dikira dengan cepat tanpa perlu mendaftarkan pembolehubah.
Bahawa dikatakan, saya masih sangat gembira dengan bagaimana jika () sekarang, dan tidak sabar untuk membina sistem reka bentuk yang lebih mudah.
Atas ialah kandungan terperinci Poking di CSS jika () berfungsi sedikit lagi: THE COLOR COLOR THEing. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyemak imbas yang berbeza mempunyai perbezaan dalam parsing CSS, mengakibatkan kesan paparan yang tidak konsisten, terutamanya termasuk perbezaan gaya lalai, kaedah pengiraan model kotak, flexbox dan tahap sokongan susun atur grid, dan tingkah laku yang tidak konsisten bagi atribut CSS tertentu. 1. Pemprosesan gaya lalai tidak konsisten. Penyelesaiannya adalah menggunakan cssreset atau normalisasi.css untuk menyatukan gaya awal; 2. Kaedah pengiraan model kotak versi lama IE adalah berbeza. Adalah disyorkan untuk menggunakan kotak-kotak: kotak sempadan dengan cara yang bersatu; 3. Flexbox dan grid melakukan secara berbeza dalam kes kelebihan atau dalam versi lama. Lebih banyak ujian dan gunakan autoprefixer; 4. Beberapa tingkah laku atribut CSS tidak konsisten. CANIUSE mesti dirujuk dan diturunkan.

Accent-color adalah atribut yang digunakan dalam CSS untuk menyesuaikan warna-warna sorot elemen bentuk seperti kotak pilihan, butang radio dan slider; 1. Ia secara langsung mengubah warna lalai keadaan yang dipilih dari kawalan borang, seperti menukar tanda semak biru kotak semak menjadi merah; 2. Unsur yang disokong termasuk kotak input Type = "Checkbox", Type = "Radio" dan Type = "Range"; 3. Menggunakan warna aksen boleh mengelakkan gaya tersuai kompleks dan struktur dom tambahan, dan mengekalkan kebolehcapaian asli; 4. Ia umumnya disokong oleh pelayar moden, dan pelayar lama perlu diturunkan; 5. Set Accent-Col

Gaya lalai penyemak imbas memastikan kebolehbacaan asas dengan menggunakan margin, mengisi, fon, dan gaya elemen secara automatik, tetapi boleh menyebabkan susun atur silang penyemak imbas yang tidak konsisten. 1. Margin lalai dan mengisi perubahan aliran susun atur, seperti jarak tajuk, perenggan dan senarai; 2. Tetapan fon lalai mempengaruhi kebolehbacaan, seperti saiz fon 16px dan font masa times; 3. Unsur -unsur bentuk sangat berbeza dalam pelayar yang berbeza, jadi penampilan perlu ditetapkan semula; 4. Beberapa tag seperti Strong dan EM mempunyai gaya penekanan lalai dan perlu ditulis secara jelas. Penyelesaian termasuk menggunakan normalize.css, gaya tetapan semula, atau margin yang jelas dan mengisi global, sambil menyesuaikan fon dan bentuk bentuk untuk konsistensi.

Untuk mencantikkan permulaan perenggan untuk meningkatkan daya tarikan visual, amalan biasa adalah menggunakan unsur-unsur pseudo CSS atau gaya secara manual dokumen. Dalam pembangunan web, p :: letter pertama boleh digunakan untuk menetapkan gaya huruf pertama, seperti membesarkan, membanting, dan membuang warna, tetapi harus diperhatikan bahawa ia hanya sesuai untuk unsur-unsur peringkat blok; Jika anda ingin menyerlahkan keseluruhan baris pertama, gunakan P :: Line pertama untuk menambah gaya; Dalam perisian dokumen seperti Word, anda boleh menyesuaikan format huruf pertama secara manual atau membuat templat gaya, dan InDesign mempunyai fungsi terbina dalam "sinking pertama" yang sesuai untuk penerbitan dan reka bentuk; Apabila memohon, anda perlu memberi perhatian kepada butiran, seperti mengelakkan gaya kompleks yang mempengaruhi membaca dan memastikan keserasian dan konsistensi format.

Thevertikal-alignpropertyincsunsignsinlineortable-cellelsementsvertically.1.itadjustSelementsLikeimagesorforminputswithIntextlinesingvaluesebaseline, Middle, Super, andSub.2.INTablecells, itControlscontentalignmentwith, Orbottomeses, STERSTOMENTIGES

Reset dan kaunter kaunter CSS digunakan untuk jumlah elemen HTML secara automatik. 1. Gunakan reset kaunter untuk memulakan atau menetapkan semula kaunter, sebagai contoh, seksyen {restra-reset: sub-seksyen;} untuk membuat kaunter bernama sub-seksyen; 2. Meningkatkan kaunter melalui kaunter-ketegangan, seperti H3 {Counter-Increment: Sub-section;} untuk meningkatkan setiap nombor tajuk H3; 3. Gunakan atribut kandungan untuk menggabungkan unsur-unsur pseudo untuk memaparkan kaunter, seperti h3 :: sebelum {kandungan:

UseAutomatedToolsLikePurgecssoruncsStoScanandRemoveUnusedCss; 2.integratePurgingIntoyourBuildProcessviawebpack, Vite, OrtailWind 'Scontentconfiguration; 3.auditcssusageWithchromedevtoolscoveragetabbeforepurgingtoavoidremovingneededstyles; 4.safelistdynamic

Untuk menukar warna teks dalam CSS, anda perlu menggunakan atribut warna; 1. Gunakan atribut warna untuk menetapkan warna latar depan teks, nama warna yang menyokong (seperti merah), kod heksadesimal (seperti #FF0000), nilai RGB (seperti RGB (255,0,0)), nilai HSL (0,100% RGBA (255,0,0,0.5)); 2. Anda boleh memohon warna ke mana -mana elemen yang mengandungi teks, seperti tajuk H1 hingga H6, perenggan P, pautan A (perhatikan tetapan warna dari keadaan yang berlainan: pautan, a: dilawati, A: hover, a: aktif), butang, div, span, dan sebagainya; 3. Kebanyakan
