Selain semua metodologi ini, ada sesuatu yang dapat membantu kami menulis kering
, kurang berulang kod: kelas penolong (juga dipanggil kelas utiliti).
Konsep ini dibincangkan beberapa ketika dahulu dalam artikel Thierry Koblentz mengenai Smashing Magazine, tetapi saya fikir saya akan menerangkan kaedah dalam kata -kata saya sendiri di sini.Kunci Takeaways
"Rawat kod seperti LEGO. Pecahkan kod ke dalam blok kecil yang paling kecil. " - @csswizardry (melalui @stubbornella) #btconf - Smashing Magazine (@smashingmag) 27 Mei 2013
mari kita lihat contoh mudah tentang apa yang kelihatan seperti kelas utiliti dan bagaimana kita boleh menggunakannya. Lihat coretan kod berikut:
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
mari kita lihat satu lagi contoh kotak yang perlu berada di sebelah kiri dengan kandungan dalamannya berpusat.
kita biasanya melakukan sesuatu seperti ini:
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
Sebaliknya, kita dapat mencapai perkara yang sama menggunakan kelas penolong yang boleh diguna semula dan tunggal:
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
Perhatikan bagaimana saya mengeluarkan kelas kotak dan sebaliknya menambah kelas yang telah ditetapkan dan pusat teks kami.
Jika anda ingin menukar arah terapung dan menyelaraskan, bukannya melakukan ini pada kelas kotak.
<span><span>.box</span> { </span> <span>float: left; </span> <span>text-align: center; </span><span>}</span>
Yayasan
<span><span><span><div</span> class<span>="left text-center"</span>></span> </span><span><span><span></div</span>></span></span>
.small-2 dan .large-4 kelas akan menetapkan lebar elemen berdasarkan saiz skrin.
margin dan padding
kita mulakan dengan menentukan pembolehubah (menggunakan sass) untuk unit ruang asas untuk reka bentuk kami. Mari kita mulakan dengan 1EM dan di atasnya kita boleh membuat kelas untuk saiz ruang yang berbeza.
kita boleh memilih nama kelas pendek, seperti dalam kod contoh di bawah dari BASSCSS
<span><span><span><div</span> class<span>="right text-right"</span>></span> </span><span><span><span></div</span>></span></span>
Pilih apa yang berfungsi untuk anda dan pasukan anda. Nama -nama yang panjang jelas akan menjadikan unsur -unsur HTML anda lebih besar, tetapi mereka lebih mudah dibaca berbanding dengan nama pendek, jadi anda mungkin perlu melihat CSS anda untuk mengetahui bagaimana keadaan berfungsi.
<span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="small-2 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-4 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-6 large-4 columns"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span></span>
Bayangkan anda mahu menetapkan seksyen menjadi ketinggian penuh di tempat yang berbeza di laman web anda. Cara tradisional yang kami lakukan ini adalah seperti ini:
dan CSS kami:
<span><span>$base-space-unit: 1em;</span> </span> <span>// Top margin </span><span>.margin-top-none { margin-top: 0; } </span><span>.margin-top-quarter { margin-top: $base-space-unit / 4; } </span><span>.margin-top-half { margin-top: $base-space-unit / 2; } </span><span>.margin-top-one { margin-top: $base-space-unit; } </span><span>.margin-top-two { margin-top: $base-space-unit * 2; } </span> <span>// Top padding </span><span>.padding-top-none { padding-top: 0; } </span><span>.padding-top-quarter { padding-top: $base-space-unit / 4; } </span><span>.padding-top-half { padding-top: $base-space-unit / 2; } </span><span>.padding-top-one { padding-top: $base-space-unit; } </span><span>.padding-top-two { padding-top: $base-space-unit * 2; }</span>
untuk bahagian lain kita akan mengulangi kod:
<span><span>.m0</span> { margin: 0 } </span><span><span>.mt0</span> { margin-top: 0 } </span><span><span>.mr0</span> { margin-right: 0 } </span><span><span>.mb0</span> { margin-bottom: 0 } </span><span><span>.ml0</span> { margin-left: 0 }</span>
dan CSS:
<span><span><span><div</span> class<span>="contact-section"</span>></span> </span> <span><!-- Content here... --> </span><span><span><span></div</span>></span></span>
tetapi kita dapat mengurangkan semua ini dengan satu kelas yang dipanggil ketinggian penuh:
<span><span>.contact-section</span> { height: 100%; }</span>
di bawah adalah beberapa contoh yang sama, termasuk kelas ketinggian penuh yang digunakan di atas:
<span><span><span><div</span> class<span>="services-section"</span>></span> </span> <span><!-- Content here... --> </span><span><span><span></div</span>></span></span>
kedudukan dan z-indeks
<span><span>.services-section</span> { height: 100%; }</span>
Kelas penolong "pin" diilhamkan oleh CSS Mapbox.
mari kita melanjutkan contoh ketinggian penuh untuk mengandungi elemen yang diposisikan di sebelah kanan bawah.
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
Demo
Dengan menggabungkan lebih daripada satu kelas, kita boleh mendapatkan hasil yang diperlukan dalam kod kurang. Jika anda ingin meletakkan elemen dalaman di bahagian atas kanan, anda boleh menggunakan pin-top-kanan dan bukannya pin-bawah-kanan. Anda mungkin perasan dalam kod di atas, saya juga menambah satu lagi kelas penolong: kelas padding-one memastikan elemen tidak dibuang ke tepi bekas atau viewport.
Unsur -unsur terapung kiri atau kanan boleh dilakukan menggunakan kelas kiri atau kanan. Kelas ClearFix yang terkenal boleh digunakan pada elemen induk untuk membersihkan terapung, ditunjukkan di bawah menggunakan pemilih induk Sass:
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
Demo
kita boleh membuat teks dan kandungan lain sejajar dengan mana-mana arah, menggunakan kelas penolong berasaskan Align:
<span><span>.box</span> { </span> <span>float: left; </span> <span>text-align: center; </span><span>}</span>
Kelas penglihatan mengawal penglihatan elemen, bergantung pada saiz skrin, orientasi peranti, skrin sentuh, atau faktor lain. Ini boleh berguna dalam reka bentuk responsif.
Kami boleh mempunyai kelas berikut di dalam pertanyaan media kami:
<span><span><span><div</span> class<span>="left text-center"</span>></span> </span><span><span><span></div</span>></span></span>
dan dalam html kami:
<span><span><span><div</span> class<span>="right text-right"</span>></span> </span><span><span><span></div</span>></span></span>
elemen di atas akan disembunyikan pada skrin kecil tetapi akan dapat dilihat pada skrin yang lebih besar.
kita juga boleh menggunakan kelas ini untuk mengawal elemen pada peranti sentuh:
<span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="small-2 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-4 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-6 large-4 columns"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span></span>
Dalam contoh di atas, kelas .touch akan datang dari kelas yang ditambahkan ke elemen oleh Modernizr.
Contoh yang baik dari kelas penglihatan adalah yang ada di Yayasan dan Bootstrap's Responsive-Utilities.
dalam tipografi, anda boleh membuat kelas untuk perkara seperti berat fon dan manipulasi teks, seperti teks ellipsis.
<span><span>$base-space-unit: 1em;</span> </span> <span>// Top margin </span><span>.margin-top-none { margin-top: 0; } </span><span>.margin-top-quarter { margin-top: $base-space-unit / 4; } </span><span>.margin-top-half { margin-top: $base-space-unit / 2; } </span><span>.margin-top-one { margin-top: $base-space-unit; } </span><span>.margin-top-two { margin-top: $base-space-unit * 2; } </span> <span>// Top padding </span><span>.padding-top-none { padding-top: 0; } </span><span>.padding-top-quarter { padding-top: $base-space-unit / 4; } </span><span>.padding-top-half { padding-top: $base-space-unit / 2; } </span><span>.padding-top-one { padding-top: $base-space-unit; } </span><span>.padding-top-two { padding-top: $base-space-unit * 2; }</span>
Setiap aplikasi mempunyai panduan dan peraturan jenama yang berbeza yang dapat kita tentukan dalam kelas yang pada dasarnya 'kulit' antara muka kita. Ini termasuk warna teks, latar belakang, dan banyak lagi.
Mari lihat bagaimana ini dapat diterjemahkan ke kod. Pertama mari kita tentukan pembolehubah kita dengan sass:
<span><span>.m0</span> { margin: 0 } </span><span><span>.mt0</span> { margin-top: 0 } </span><span><span>.mr0</span> { margin-right: 0 } </span><span><span>.mb0</span> { margin-bottom: 0 } </span><span><span>.ml0</span> { margin-left: 0 }</span>
Kemudian kami menentukan kelas penolong kami, berdasarkan pembolehubah:
<span><span><span><div</span> class<span>="contact-section"</span>></span> </span> <span><!-- Content here... --> </span><span><span><span></div</span>></span></span>
Dua contoh yang baik menggunakan kelas penolong warna dan latar belakang terdapat di Mapbox dan projek kit starter web Google.
<span><span>.contact-section</span> { height: 100%; }</span>
senarai
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
Kelas penolong boleh digunakan untuk menambah sempadan ke elemen, sama ada untuk semua pihak atau satu sisi. Jadi CSS/SASS anda mungkin kelihatan seperti ini:
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
kelas penolong berikut memberi kita keupayaan untuk menggunakan nilai yang berbeza untuk harta paparan CSS:
<span><span>.box</span> { </span> <span>float: left; </span> <span>text-align: center; </span><span>}</span>
Mengikuti prinsip abstraksi ini mungkin merupakan pendekatan yang jauh berbeza dari apa yang anda sudah biasa ketika mengarang CSS. Tetapi berdasarkan pengalaman saya, dan orang lain saya boleh mengatakan ini adalah pendekatan yang sangat baik untuk dipertimbangkan pada projek anda yang seterusnya.
anda boleh menyemak semua kelas penolong dari siaran ini di perpustakaan baru yang saya buat yang dipanggil CSS-Helpers.
anda boleh belajar dari dan meneroka struktur projek berikut:
.center-text {
text-align: center; Anda kemudian boleh memohon kelas ini ke mana -mana elemen HTML untuk memusatkan teksnya. kelas ke elemen HTML tunggal. Ini membolehkan anda menggabungkan gaya dan kesan yang berbeza tanpa perlu membuat kelas berasingan untuk setiap kombinasi. Sebagai contoh, jika anda mempunyai kelas penolong untuk teks yang berpusat dan menukar warnanya, anda boleh menggunakan kedua -dua elemen yang sama seperti ini:
Ini adalah beberapa teks.
Ya, anda boleh menggunakan kelas penolong dengan preprocessors CSS seperti sass atau kurang. Malah, alat ini boleh menjadikannya lebih mudah untuk membuat dan mengurus kelas penolong. Sebagai contoh, SASS membolehkan anda menggunakan mixins, yang seperti kelas penolong yang boleh menerima argumen. Ini membolehkan anda membuat gaya yang lebih fleksibel dan boleh diguna semula. Dengan merangkumi gaya biasa dalam kelas yang boleh diguna semula, anda boleh menggunakan gaya ini dengan mudah merentasi unsur -unsur dan komponen yang berbeza. Ini menjadikan kod anda lebih modular dan berskala, seperti yang anda boleh tambahkan, mengeluarkan, atau mengubah suai gaya tanpa menjejaskan bahagian lain kod anda. Tambahan pula, kelas penolong boleh membantu anda mengekalkan konsistensi dalam reka bentuk anda apabila projek anda berkembang.
Atas ialah kandungan terperinci Menggunakan kelas penolong untuk kering dan skala CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!