iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
自我挑戰組

從零開始學習前端系列 第 19

#從零開始1️⃣8️⃣:寫CSS寫的心好累-SCSS、OOCSS、BEM設計模式(下)

  • 分享至 

  • xImage
  •  
  1. OOCSS(Object-Oriented CSS)

OOCSS(Object-Oriented CSS)強調了分離結構和外觀的概念。以下是 OOCSS 的一些主要特點:

(1) 分離結構和外觀:OOCSS 鼓勵將 CSS 類別設計為具有通用的結構和外觀。

(2) 結構性 CSS:這種方法將元素的結構和排列與其外觀分開,使得修改變得容易且不會影響佈局。

(3) 重用的模塊:OOCSS 通常使用具有通用樣式的 CSS 模塊,這些模塊可以在整個專案中重複使用。

OOCSS 適用於中型到大型項目,特別是需要一致性外觀和結構的項目,這種設計模式有助於減少程式碼重複,但可能需要設定較多的類別和結構。

OOCSS (Object-Oriented CSS) 設計模式範例:

<!-- HTML -->
<button class="button primary">Primary Button</button>
<button class="button secondary">Secondary Button</button>

/* CSS */
.button {
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.primary {
  background-color: #007bff;
  color: white;
}

.secondary {
  background-color: #f0f0f0;
  color: #333;
}

  1. BEM(Block-Element-Modifier)

BEM(Block-Element-Modifier)強調了命名的一致性和可讀性。以下是 BEM 的一些主要特點:

(1) 命名:BEM 使用特定的命名,包括 Block、Element 和 Modifier,來定義元素的結構和外觀。

(2) Block:代表獨立的元素,它可以包含其他元素。

(3) 元素(Element):位於块內部,用於構建块的部分。

(4) 修飾符(Modifier):用於修改块或元素的外觀或行為。

BEM 適用於中型到大型項目,尤其是需要強調命名一致性和可讀性的專案。這種設計魔使有助於減少樣式衝突,但可能需要更多的類別名稱。

BEM (Block, Element, Modifier) 設計模式範例:

<!-- HTML -->
<div class="button button--primary">Primary Button</div>
<div class="button button--secondary">Secondary Button</div>

/* CSS */
.button {
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.button--primary {
  background-color: #007bff;
  color: white;
}

.button--secondary {
  background-color: #f0f0f0;
  color: #333;
}

小結

每種模式都有其優勢和用途,可以根據項目需求和個人偏好來選擇。SCSS、OOCSS 和 BEM 都是用於組織和管理 CSS 的有效工具,它們在不同情境下都有各自的優勢。選擇哪種設計模式取決於項目的大小、要求和團隊的偏好。無論選擇哪種方法,重要的是保持一致性、可讀性和可維護性,以確保 CSS 代碼的品質和可持續性。

參考資料:

  1. Sass:https://sass-lang.com/
  2. OOCSS:http://oocss.org/
  3. BEM:https://getbem.com/

上一篇
#從零開始1️⃣7️⃣:寫CSS寫的心好累-SCSS、OOCSS、BEM設計模式(上)
下一篇
#從零開始1️⃣9️⃣:寫CSS寫的心好累-Sass
系列文
從零開始學習前端31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言