Berikut ialah beberapa cerapan tentang cara pembolehubah CSS boleh memudahkan sokongan komponen boleh guna semula dan boleh suai. Tidak kira rangka kerja yang anda gunakan, pendekatan ini kekal sebagai rangka kerja agnostik.
Andaikan saya perlu menambah komponen Bar Kemajuan pada kit UI saya. Menggunakan React sebagai contoh, berikut ialah pelaksanaan yang mudah.
import "./ProgressBar.css"; export function ProgressBar({percentage} : {percentage: number} ){ return ( <div className="progress-bar"> <div className="fill" style={{ width: percentage + "%"}} /> </div> ) }
Dan CSS untuk menambah warna dan peraturan asas
.progress-bar{ width: 200px; height: 20px; border: 1px solid black; } .progress-bar .fill{ height: 100%; background: black; }
Ia hitam secara lalai dan kelihatan seperti ini
Komponen tersebut sepatutnya digunakan semula dalam pelbagai bahagian apl saya. Saya menjangkakan bahawa setiap pengguna harus mempunyai fleksibiliti untuk menyesuaikan warna bar dan sempadannya agar sejajar dengan keperluan khusus dan skema warna mereka.
Saya mengharapkan pengguna menyediakan peraturan CSS mereka sendiri untuk mengatasi warna lalai. Sebagai contoh, pengguna boleh menulis CSS berikut untuk menjadikan bar kemajuan hijau dalam bahagian muat naik.
#upload .progress-bar{ border-color: green } #upload .progress-bar .fill { background-color: green; }
Penyesuaian ini berfungsi seperti yang diharapkan.
Setiap pengguna boleh menggunakan pendekatan yang sama, dan pada pandangan pertama, ia kelihatan seperti penyelesaian yang kukuh.
Walau bagaimanapun, cara penyesuaian itu datang dengan beberapa kelemahan
❌ Pepijat masa hadapan: Dalam jangka masa panjang, komponen bar kemajuan akan dikemas kini atau difaktorkan semula. Penyesuaian akan rosak jika kelas dinamakan semula atau hierarki teg ditukar.
? Beban kognitif pengguna: Pembangun yang menggunakan komponen saya perlu memeriksa struktur HTMLnya untuk menentukan peraturan CSS yang diperlukan untuk mengatasi nilai lalai.
⚒️ Kod penyesuaian yang menyusahkan: Mengubah suai kedua-dua warna bar dan sempadannya memerlukan penulisan dua peraturan yang berasingan.
Sudah tentu, ia bukan masalah besar untuk kes mudah seperti ProgressBar kami. Walau bagaimanapun, komponen yang lebih kompleks dalam kit UI yang besar, terutamanya apabila digunakan oleh ramai pembangun, boleh memberikan cabaran yang ketara.
Untuk memudahkan penyesuaian dan mengurangkan isu ini, kami boleh memanfaatkan pembolehubah CSS.
Dalam komponen sampel saya, perubahan dibuat hanya dalam fail CSS
.progress-bar{ --progress-bar-color: black; width: 200px; height: 20px; border: 1px solid var(--progress-bar-color); } .progress-bar .fill{ height: 100%; background: var(--progress-bar-color); }
Perhatikan bahawa saya mengisytiharkan pembolehubah --progress-bar-color untuk menetapkan warna. Pengguna kini boleh menyesuaikan komponen semudah
#upload .progress-bar{ --progress-bar-color: green; }
Dengan pendekatan baharu ini, mari kita semak semula senarai masalah penyesuaian
❌ Pepijat masa hadapan: Sebagai pembangun bar kemajuan, saya boleh mengubah suai nama kelas dan hierarki mengikut keperluan. Walau bagaimanapun, selagi saya menggunakan pembolehubah CSS dengan betul pada elemen yang dikemas kini, penyesuaian warna yang dibuat oleh pengguna kekal utuh.
? Beban kognitif pengguna: Pengguna tidak perlu lagi memeriksa kod komponen saya untuk menyesuaikan warna. Pembolehubah CSS bertindak sebagai 'antara muka' atau 'abstraksi,' membolehkan mereka menetapkan warna yang diingini sahaja tanpa menyelidiki butiran pelaksanaan.
⚒️ Kod penyesuaian yang menyusahkan: Kini, satu peraturan CSS boleh menyesuaikan kedua-dua elemen isian dan sempadan.
Dari segi penyesuaian warna, bergantung pada pembolehubah CSS menyelaraskan penggunaan skema warna umum. Anda boleh mengurus semua tetapan warna dengan fail CSS ringkas yang mentakrifkan pembolehubah merentas seluruh halaman.
Kini, semua warna pada halaman boleh dikawal dari satu lokasi. Untuk mengemas kini warna untuk keseluruhan halaman, cuma gantikan takrifan pembolehubah CSS dengan set baharu.
Pendekatan ini juga memudahkan pelaksanaan ciri seperti tema terang/gelap atau pilihan warna yang ditentukan pengguna.
? Kebolehselenggaraan yang lebih baik: Dengan menggunakan penyesuaian melalui pembolehubah CSS, pangkalan kod menjadi lebih boleh diselenggara, menjadikan kemas kini masa hadapan lebih mudah dan tidak memakan masa.
? Kod Rawan Pepijat yang Dikurangkan: Pemisahan yang jelas antara dalaman komponen dan antara muka penyesuaiannya meminimumkan risiko pepijat, kerana perubahan pada pelaksanaan dalaman tidak menjejaskan cara komponen disesuaikan.
? Kod menjadi lebih mudah untuk difahami: Penggunaan pembolehubah CSS menjadikan penyelesaian lebih intuitif dan lebih mudah difahami. Pembangun boleh memahami dengan cepat cara mengubah suai gaya tanpa menyelidiki kod yang kompleks atau legap.
♾️ Framework-agnostic: Anda boleh menggunakan pendekatan ini di mana-mana kerana ia bergantung pada ciri penyemak imbas sahaja.
Atas ialah kandungan terperinci Memperkemas Gaya: Pembolehubah CSS untuk Kod Boleh Diselenggara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!