cari
Rumahhujung hadapan webtutorial cssCSS 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.

CSS Architecture Block-Element-Modifier (BEM) - SitePoint

Rajah 2.3. Laman web mungkin termasuk blok header, utama, dan footer.

Blok boleh bersarang. Sebagai contoh, blok tajuk mungkin mengandungi logo, navigasi, dan blok borang carian (Rajah 2.4). Footer boleh mengandungi blok sitemap.

CSS Architecture Block-Element-Modifier (BEM) - SitePoint

Rajah 2.4. Blok header merangkumi logo, navigasi, dan blok carian.

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.

CSS Architecture Block-Element-Modifier (BEM) - SitePoint

Rajah 2.5. Blok carian dengan input teks dan hantar elemen butang.

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).

CSS Architecture Block-Element-Modifier (BEM) - SitePoint

Rajah 2.6. Blok promosi untuk artikel laman web.

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 (). --

Berikut adalah borang carian BEM-gaya Contoh:

<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>
Versi bertema gelap:

<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>
CSS yang sepadan:

<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.
Skop BEM melangkaui gambaran ini. Laman web rasmi BEM menyediakan butiran, alat, dan tutorial yang komprehensif. "Get Bem" adalah satu lagi sumber yang sangat baik untuk konvensyen penamaan.

(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!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Draggin ' dan Droppin ' dalam ReactDraggin ' dan Droppin ' dalam ReactApr 17, 2025 am 11:52 AM

Ekosistem React menawarkan kita banyak perpustakaan yang semuanya memberi tumpuan kepada interaksi seret dan penurunan. Kami mempunyai React-Dnd, React-Beautiful-Dnd,

Perisian CepatPerisian CepatApr 17, 2025 am 11:49 AM

Terdapat beberapa perkara yang saling berkaitan dengan perisian cepat sejak kebelakangan ini.

Kecerunan bersarang dengan klip latar belakangKecerunan bersarang dengan klip latar belakangApr 17, 2025 am 11:47 AM

Saya tidak boleh mengatakan saya menggunakan klip latar belakang semua yang kerap. Saya ' Tetapi saya diingatkan dalam jawatan oleh Stefan Judis,

Menggunakan RequestAnimationFrame dengan cangkuk ReactMenggunakan RequestAnimationFrame dengan cangkuk ReactApr 17, 2025 am 11:46 AM

Animasi dengan RequestAnimationFrame semestinya mudah, tetapi jika anda belum membaca dokumentasi React dengan teliti maka anda mungkin akan mengalami beberapa perkara

Perlu tatal ke bahagian atas halaman?Perlu tatal ke bahagian atas halaman?Apr 17, 2025 am 11:45 AM

Mungkin cara paling mudah untuk menawarkan kepada pengguna adalah pautan yang mensasarkan ID pada elemen. Begitu seperti ...

API terbaik (graphql) adalah salah satu yang anda tulisAPI terbaik (graphql) adalah salah satu yang anda tulisApr 17, 2025 am 11:36 AM

Dengar, saya bukan pakar GraphQL tetapi saya suka bekerja dengannya. Cara ia mendedahkan data kepada saya sebagai pemaju front-end cukup sejuk. Ia seperti menu

Berita Platform Mingguan: Bookmarket Jarak Teks, Menunggu Tahap Teratas, Penunjuk Memuatkan AMP BaruBerita Platform Mingguan: Bookmarket Jarak Teks, Menunggu Tahap Teratas, Penunjuk Memuatkan AMP BaruApr 17, 2025 am 11:26 AM

Pada minggu ini, roundup, sebuah bookmarklet yang berguna untuk memeriksa tipografi, menggunakan menunggu untuk mengamuk dengan cara modul JavaScript mengimport satu sama lain, ditambah Facebook ' s

Pelbagai kaedah untuk mengembangkan kotak semasa memelihara jejari sempadanPelbagai kaedah untuk mengembangkan kotak semasa memelihara jejari sempadanApr 17, 2025 am 11:19 AM

Saya baru -baru ini melihat perubahan yang menarik pada Codepen: apabila melayang pena di laman web, ada persegi panjang dengan sudut bulat yang berkembang di belakang.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft