Skip to content
On this page

CSS BEM

INFO

B --- Block (區塊)

E --- Element(元素)

M --- Modifier(修飾符)

基本原則及說明

Block 區塊

每個 Block 在邏輯與功能上都是相互獨立,任何獨立的頁面元素都可以被視作一個區塊。

  • 在邏輯上和功能上都相互獨立,頁面上不能相依其他 Blocks 或元素。
  • 可以放置在頁面上的任何位置,也可以互相嵌套
  • 不要定義過多影響所在環境的外部樣式(e.g. margin

Element 元素

相依 Block,如果一個區域不能拿到外部單獨使用,將應該作為 ELement。

  • 描述其結構、佈局或意義,語意上與 Block 相關。
  • 不能與 Block 分開,頁面上不能相依其他的 Block 或 Element。
  • 無法定義層次結構。
  • Element 和 Element 之間可以彼此嵌套

Modifier 修飾符

用來定義 Block 和 Element 的外觀、狀態或類型。

  • 表達其外觀、狀態或行為。
  • 不能脫離 Block 或 Element。
  • 應該改變的是實體的外觀、行為或狀態,而不是替換它
  • 值可以是 Boolean 或 Key-value 形式。
  • 不能同時具有不同值的相同 Modifier