iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
Modern Web

30天前端網頁技術超入門介紹系列 第 5

Day5. CSS 設計模式(一) - SMACSS

  • 分享至 

  • xImage
  •  

無論何種設計模式皆屬於參考,只要能將你的 CSS 收納、歸類好,任何模式皆能提升開發時的效率。
所以請找到適合自己的模式吧!

什麼是 SMACSS?

SMACSS(Scalable and Modular Architecture for CSS)。顧名思義就是可擴展模組化的設計模式。

官網連結

聽起來有點模糊...

直接從官網右邊的 core 欄位來看,

將結構分成5類,依序撰寫。

  1. Base:做全站設定為主,把最常用的東西全部先設定好。
    e.g. margin: 0;padding: 0;...

  2. Layout:網站布局為主。
    通常會用在網頁的頁首及頁尾。
    以 Udemy 的頁面來說就是這兩個區塊。
    https://ithelp.ithome.com.tw/upload/images/20200913/2011905128n6RTiSyf.png
    https://ithelp.ithome.com.tw/upload/images/20200913/20119051nN4pNIWPDt.png

  3. Module:新增基底,再改換樣式(子模組)。
    不知道大家是否有用過 Bootstrap? 是否好奇為什麼要把按鈕設計成需要 .btn.btn-primary 才能將按鈕顯示出來?
    https://ithelp.ithome.com.tw/upload/images/20200913/20119051fS1GgUf8Lf.png

<button type="button" class="btn btn-primary">Primary</button>

這個用意就是先建基底,接下來只要設定改變的樣式即可,這樣可以使這個模組普遍活躍於各個地方。

  1. State:用於新增狀態,通常與 Layout class 和 Module class 一起使用。
    e.g. Bootstrap 的折疊元件
    https://ithelp.ithome.com.tw/upload/images/20200913/20119051NEdJvlNYTW.png
    可以新增錯誤或正確的 class。
    錯誤時添加個 .is-error,成功時添加個 .is-success 的 class。

  2. Theme:這個的話比較少用,主要用於設定網站主題的形式。例如網頁的 dark mode。

雖然 SMACSS 將 CSS 區分出來,但各類的界線模糊,所以在使用時要注意喔~~~


SMACSS 看完是不是覺得還不錯呢? 是否讓自己覺得以前 CSS 都沒好好規劃,然後越寫越雜@@?
明天要介紹的 OOCSS 也是類似的設計模式,就盡請期待吧~~


上一篇
Day4. SCSS Mixin
下一篇
Day6. CSS 設計模式(二) - OOCSS
系列文
30天前端網頁技術超入門介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言