Terdapat banyak metodologi CSS di luar sana, dan saya benci semuanya. Ada yang lebih (tailwind & al.) dan ada yang kurang (BEM, OOCSS, dll.). Tetapi pada penghujung hari, mereka semua mempunyai kelemahan.
Orang ramai menggunakan pendekatan ini untuk alasan yang baik, sudah tentu, dan banyak masalah yang ditangani adalah yang saya juga hadapi. Jadi dalam siaran ini, saya ingin menulis garis panduan saya sendiri tentang cara saya memastikan CSS teratur.
Ini bukan metodologi CSS yang diterangkan sepenuhnya yang boleh digunakan oleh sesiapa sahaja. Mungkin ia boleh diubah menjadi satu dengan beberapa kerja tambahan, tetapi tujuan siaran ini hanyalah untuk menunjukkan cara saya membuat keputusan ini semasa menulis CSS.
Sebagai peraturan biasa, saya cuba menggunakan jenis elemen terbina sebanyak mungkin dan dengan sedikit tambahan yang mungkin.
Memiliki keperluan untuk seribu jenis butang yang berbeza adalah tanda bahawa mungkin terdapat sesuatu yang tidak kena dengan reka bentuk pada tahap yang lebih mendalam, jadi sementara dalam beberapa kes saya mendapat daya tarikan CSS menjadi lengai sehingga kelas khusus rangka kerja digunakan , dalam kebanyakan kes saya melihatnya sebagai ideal apabila butang hanyalah
div.btton sepatutnya bertukar menjadi butang
Bukan semua elemen reka bentuk mempunyai padanan HTML yang sesuai secara semantik dan untuk kes ini, saya biasanya menggunakan elemen tersuai.
Saya tidak pernah melihat banyak contoh nama elemen tersuai digunakan tanpa sebarang javascript yang disertakan, tetapi ia telah terbukti sebagai pilihan yang sangat kukuh untuk menulis HTML yang jelas yang juga kelihatan seperti yang saya mahukan.
Elemen yang sepenuhnya berasingan dari segi reka bentuk juga lebih berkemungkinan, dari masa ke masa, membangunkan keperluan yang hanya boleh dilaksanakan dengan JavaScript, yang memberikan anda laluan yang jelas untuk melaksanakan perkara yang tidak memerlukan sebarang perubahan dalam HTML mahupun CSS.
div.vsep sepatutnya bertukar menjadi pemisah menegak
Kelas harus berfungsi sebagai pengubah suai nama nod sedia ada, bukannya jenis elemen baharu sepenuhnya, dan selalunya mempunyai kesan yang serupa tetapi berbeza pada jenis elemen yang berbeza.
Butang berbahaya ialah butang.bahaya
Sesetengah cara mengubah suai elemen bukanlah suis hidup/mati yang mudah yang kelas berguna, tetapi berkelakuan lebih seperti pasangan nilai kunci.
Dalam kes ini, atribut tersuai dengan pemilih yang sepadan telah terbukti sebagai pilihan terbaik hampir setiap kali saya menggunakannya. Tidak seperti kelas sempang, kelas tersebut dipaparkan pada peringkat sintaks iaitu atribut dan nilai, menjadikannya lebih mudah untuk editor menyerlahkannya, lebih mudah untuk mata manusia menghuraikan dengan cepat dan lebih mudah untuk antara muka menggunakan JavaScript.
Bagi kita yang masih menaruh harapan bahawa fungsi attr() mungkin suatu hari nanti akan memasuki CSS untuk lebih daripada sekadar kandungan, ini juga merupakan lapisan tambahan kalis masa hadapan.
ID adalah, mengikut definisi, unik di dalam dokumen. Oleh itu, sebarang peraturan yang menyasarkan ID tertentu akan dihadkan dan mungkin memerlukan pemfaktoran semula jika kemudiannya ternyata terdapat lebih daripada satu elemen jenis ini pada lage selepas semua.
Oleh itu, ID hendaklah digunakan dengan berhati-hati dan hanya apabila tidak masuk akal untuk mempunyai lebih daripada satu elemen dalam satu dokumen.
Faedah berbanding kelas dari segi praktikal dan kebolehbacaan agak kecil, jadi kesilapan di sebelah kelas biasanya merupakan idea terbaik apabila tiada hubungan 1-dengan-1 yang jelas antara elemen dan penggayaan dapat dikenal pasti.
Mana-mana aplikasi dunia sebenar pada satu ketika akan mempunyai elemen yang hanya memerlukan pengubahsuaian individu untuk menjadikannya lebih menarik dari segi estetika dalam konteks yang muncul.
Dalam kes ini, atribut gaya ialah cara yang perlu dilakukan. Sebarang sebab mengapa menggunakannya dianggap sebagai amalan buruk terpakai pada sebarang jenis penggayaan sebaris, termasuk kelas utiliti. Masalahnya bukan atribut, ia mencampurkan penggayaan dan markup.
Satu perbezaan antara gaya dan kelas untuk gaya sebaris ialah satu menunjukkan tujuan, membenarkan penggunaan CSS biasa dan kebanyakannya universal, manakala satu lagi tidak.
Ringkasnya, lebar: 100px mempunyai makna yang ditakrifkan secara universal, manakala .width-100 boleh bermakna apa sahaja.
Dalam keadaan yang sangat jarang berlaku, gaya khusus unsur menjadi sangat rumit sehingga menyelitkannya secara eksplisit akan membahayakan kebolehbacaan, atau bahkan mustahil (contohnya jika ia memerlukan pertanyaan media).
Dalam kes ini, kelas utiliti pada asasnya adalah satu-satunya pilihan, walaupun ia hodoh.
Dalam dunia yang ideal, ini boleh dikendalikan secara berasingan daripada kelas campuran tertentu, malah saya telah mempertimbangkan untuk menggunakan awalan untuk membezakannya dengan lebih mudah, tetapi akhirnya tidak menemui cara yang baik untuk menjadikannya tidak hodoh.
Saya suka idea untuk menetapkan awalan kelas utiliti dengan + untuk mewakili bahawa mereka menambah beberapa jenis fungsi pada elemen, berbeza dengan kelas biasa, yang menentukan jenis elemen.
Dan itu sahaja mengenainya. Sudah tentu, tiada dua projek adalah sama, dan kadangkala peraturan perlu dibengkokkan sedikit untuk kekal praktikal, tetapi secara keseluruhan, itulah rangka kerja saya untuk memutuskan cara membuat sesuatu pada skrin kelihatan seperti cara tertentu.
Apakah pendapat anda? Adakah anda membencinya? Adakah anda fikir ia masuk akal? Beritahu saya dalam ulasan ?
Atas ialah kandungan terperinci Bagaimana saya menulis pemilih CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!