Dalam artikel ini, kami akan menyelami metodologi BEM (Blok, Elemen, Pengubah suai), konvensyen penamaan CSS popular yang membantu anda menulis CSS yang bersih, tersusun dan boleh diselenggara untuk projek besar. BEM memastikan kod anda kekal berskala apabila projek berkembang dan mengurangkan kemungkinan konflik gaya.
BEM adalah singkatan kepada:
Metodologi BEM menekankan mencipta kod CSS yang boleh digunakan semula, boleh diramal dan boleh diselenggara.
.block {} .block__element {} .block--modifier {}
Mari pecahkan struktur BEM dengan contoh.
<div class="menu"> <ul class="menu__list"> <li class="menu__item menu__item--active">Home</li> <li class="menu__item">About</li> <li class="menu__item">Contact</li> </ul> </div>
Dalam contoh ini:
Sebuah blok ialah komponen bebas yang boleh digunakan semula. Anggap ia sebagai entiti serba lengkap yang boleh diletakkan di mana-mana dalam kod anda tanpa perlu risau gayanya dipengaruhi oleh elemen lain.
.button { padding: 10px 20px; background-color: #3498db; color: white; border: none; }
Di sini, .button ialah blok yang mentakrifkan gaya untuk komponen butang. Anda boleh menggunakan semula blok ini merentas berbilang bahagian tapak web anda.
Satu elemen ialah sebahagian daripada blok yang tidak mempunyai makna tersendiri. Ia terikat pada blok dan wujud untuk melaksanakan fungsi yang berkaitan dengan blok.
.button__icon { margin-right: 10px; } .button__label { font-size: 14px; }
Di sini:
pengubah suai mewakili variasi blok atau elemen. Pengubah suai digunakan untuk menukar rupa atau gelagat komponen, seperti menukar warna butang atau menjadikan elemen lebih besar.
.button--primary { background-color: #2ecc71; } .button--large { padding: 15px 30px; }
Di sini:
Pengubah suai juga boleh digunakan pada elemen:
.button__icon--small { width: 10px; height: 10px; }
Mari lihat contoh yang lebih lengkap yang merangkumi blok, elemen dan pengubah suai:
<div class="card"> <div class="card__header"> <h2 class="card__title">Card Title</h2> </div> <div class="card__body"> <p class="card__text">This is a simple card component.</p> </div> <div class="card__footer"> <button class="button card__button card__button--primary">Read More</button> </div> </div>
/* Block */ .card { border: 1px solid #ddd; padding: 20px; border-radius: 5px; } /* Elements */ .card__header { margin-bottom: 15px; } .card__title { font-size: 18px; color: #333; } .card__body { margin-bottom: 15px; } .card__text { color: #666; } .card__footer { text-align: right; } /* Modifier */ .card__button--primary { background-color: #3498db; color: white; }
Dalam contoh ini:
Metodologi BEM ialah cara yang berkesan untuk memastikan CSS anda teratur, boleh diramal dan berskala. Dengan memecahkan komponen anda kepada blok, elemen dan pengubah suai, anda boleh mengekalkan kod yang lebih bersih dan mengelakkan konflik gaya, menjadikan pembangunan lebih pantas dan cekap sebagai projek anda berkembang.
Ridoy Hasan
Atas ialah kandungan terperinci Model BEM CSS – Panduan Menulis CSS Boleh Skala dan Boleh Diselenggara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!