CSS Architecture Block-Element-Modifier (BEM)-SITEPOINT
bem (pengubahsuaian blok-elemen) adalah metodologi pembangunan front-end, konvensyen penamaan, dan satu set alat yang berkaitan. Berasal dari Yandex, ia direka untuk pembangunan yang cekap oleh pasukan besar. Penjelasan ini memberi tumpuan kepada konsep teras dan sistem penamaan.
BEM mempromosikan laman web tontonan sebagai koleksi blok komponen yang boleh diguna semula, boleh digabungkan untuk membina antara muka. Blok adalah bahagian laman web (header, footer, sidebar, dll.), Seperti yang ditunjukkan dalam Rajah 2.3. Perhatikan bahawa "blok" di sini merujuk kepada segmen halaman HTML.
Blok boleh bersarang. Sebagai contoh, blok tajuk mungkin mengandungi logo, navigasi, dan blok borang carian (Rajah 2.4). Footer boleh mengandungi blok sitemap.
unsur -unsur lebih berbutir daripada blok. Seperti yang dinyatakan oleh dokumentasi BEM: "Satu elemen adalah sebahagian daripada blok yang melakukan fungsi tertentu. Unsur-unsur yang bergantung kepada konteks, mereka hanya masuk akal dalam blok induk mereka."
Blok borang carian, misalnya, termasuk elemen input teks dan elemen butang hantar (Rajah 2.5). Di sini, "elemen" merujuk kepada elemen reka bentuk, bukan elemen HTML.
Blok kandungan utama mungkin mengandungi blok senarai artikel, yang seterusnya mengandungi blok promo artikel. Setiap blok promo boleh mempunyai imej, petikan, dan "baca lebih lanjut" elemen (Rajah 2.6).
blok dan elemen membentuk teras konvensyen penamaan BEM:
- Nama blok mestilah projek yang unik.
- nama elemen mestilah unik dalam blok.
- variasi blok (mis., Kotak carian gelap) Gunakan pengubah dalam nama kelas.
Blok dan nama elemen dipisahkan oleh dua garis bawah (__
). Pengubahsuaian dipisahkan dari nama blok/elemen oleh dua tanda hubung (--
<div class="search"> <div class="search__wrapper"> <label for="s" class="search__label">Search for:</label> <input type="text" id="s" class="search__input" /> <input type="submit" class="search__submit" value="Search" /> </div> </div>
<div class="search search--inverse"> <div class="search__wrapper search__wrapper--inverse"> <label for="s" class="search__label search__label--inverse">Search for:</label> <input type="text" id="s" class="search__input search__input--inverse" /> <input type="submit" class="search__submit search__submit--inverse" value="Search" /> </div> </div>
<div class="search"> <div class="search__wrapper"> <label for="s" class="search__label">Search for:</label> <input type="text" id="s" class="search__input" /> <input type="submit" class="search__submit" value="Search" /> </div> </div>
dalam markup dan CSS, search--inverse
dan search__label--inverse
adalah ditambah kelas, bukan pengganti. Hanya pemilih kelas yang digunakan; Pemilih kanak -kanak dan keturunan dibenarkan tetapi juga harus menargetkan kelas. Elemen dan pemilih ID dielakkan. Ini menjadikan spesifikasi pemilih rendah, menghalang kesan sampingan, dan menjadikan CSS bebas daripada corak markup. Blok unik dan nama elemen menghalang konflik penamaan. Manfaat termasuk:
- Pembacaan dan pemahaman kod yang lebih baik untuk ahli pasukan baru.
- Peningkatan produktiviti pasukan.
- Mengurangkan perlanggaran penamaan dan kesan sampingan.
- kemerdekaan CSS dari markup.
- kebolehgunaan semula CSS tinggi.
(bahagian Soalan Lazim ditinggalkan kerana ia adalah pengulangan maklumat yang sudah ada dan akan meningkatkan panjang output tanpa menambah kandungan baru.)
Atas ialah kandungan terperinci CSS Architecture Block-Element-Modifier (BEM)-SITEPOINT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

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)

Topik panas











Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Tartan adalah kain berpola yang biasanya dikaitkan dengan Scotland, terutamanya kilt bergaya mereka. Di Tartanify.com, kami mengumpulkan lebih dari 5,000 Tartan

Arahan template inline membolehkan kita membina komponen Vue yang kaya sebagai peningkatan progresif ke atas markup WordPress yang sedia ada.

Templat PHP sering mendapat rap buruk untuk memudahkan kod subpar - tetapi itu tidak perlu berlaku. Mari kita lihat bagaimana projek PHP dapat menguatkuasakan asas

Kami sentiasa mencari untuk menjadikan web lebih mudah diakses. Kontras warna hanya matematik, jadi Sass dapat membantu menutup kes -kes kelebihan yang mungkin dilewatkan oleh para pereka.
