CSS 得撰寫並不困難,但是當 CSS 數量一多時,就變得難以維護與偵錯,所以我們會透過預處理語言 Sass 來幫助我們撰寫 CSS。
CSS 撰寫簡單,但寫多了要維護偵錯很困難
固定的顏色、字型、數字,都可以設定成變數
將重複的 CSS 提出來,實現 DRY
預處理,有 bug 直接顯示錯誤
CSS 程式碼就是合法的 SCSS,附檔名 .scss
Sass 附檔名 .sass,更簡潔的程式碼
初學者可以直接從 SCSS 開始寫
SCSS
.content {
  border: 1px solid #ccc; 
  padding: 20px;
  h2 {
    font-size: 3em;
    margin: 20px 0;
  }
  p {
    font-size: 1.5em;
    margin: 15px 0;
  }
}
CSS
.content {
  border: 1px solid #ccc;
  padding: 20px;
}
.content h2 {
  font-size: 3em;
  margin: 20px 0;
}
.content p {
  font-size: 1.5em;
  margin: 15px 0;
}
SCSS
.content {
  border: 1px solid #ccc;
  padding: 20px;
  .callout {
    border-color: red;
  }
  &.callout {
    border-color: green;
  }
}
CSS
.content {
  border: 1px solid #ccc;
  padding: 20px;
}
.content .callout {
  border-color: red;
}
.content.callout {
  border-color: green;
}
還可以這樣寫
SCSS
.sidebar {
  float: right;
  width: 300px;
  .users & {
    width: 400px;
  }
}
CSS
.sidebar {
  float: right;
  width: 300px;
}
.users .sidebar {
  width: 400px;
}
文字大小、顏色、字串都可以設定成變數
Sass 變數開頭用 $
// Booleans
$rounded: false;
$shadow: true;
// Numbers
$rounded: 4px;
$line-height: 1.5
;$font-size: 3rem;
// Colors
$base: purple;
$border: rgba(0, 255, 0, 0.5);
$shadow: #333;
// Strings
$header: 'Helvetica Neue';$callout: Arial;$message: "Loading...";
// Lists
$authors: nick, dan, aimee, drew;
老闆說:我希望這個基本色在深一點
工程師:(把 CSS color, backgound 有用到基本色的,通通拿出來改)
老闆:好像還是原本比較好,改回來好了
工程師:(翻桌) ┻━┻
如果撰寫專案時有把基本色、強調色都設定成變數,那只要該一個,全都改了