N1_CSS 預處理器


Posted by Christy on 2021-09-11

[FE201]_寫 CSS 好簡單:CSS 預處理器

什麼是 CSS 預處理器?

為什麼要用?CSS 寫起來不像是一個程式語言,如果可以用程式語言的概念寫迴圈等等在裡面,會更方便使用。而 CSS 預處理器就是可以把 CSS 轉換成程式語言的一個翻譯器。

SCSS 簡介:可以去 官網 看一下指令

用 SCSS 比較符合原本 css 的寫法,Sass 則有自己的規則,要習慣一下

基本用法:

1.要怎麼使用 sass 把寫的 scss 作轉換?

先建立一個 style.scss,在裡面寫的 style 經過 sass style.scss s.css 以後,就會多兩個檔案出來。

一個是 s.css,就是從 style.scss 編譯而來的
另一個是s.css.map,如果有 source map,在 debug 的時候瀏覽器會給你原本的資訊。

//  style.scss
$primary-color: #333;

div {
  color: red;
}

2.sass --watch style.scss s.css 自動偵測 style.scss,去改變 s.css 做編譯

根據官方文件,分成以下幾個部份:

1.Variables

可以寫一些變數共用:

//  style.scss
$primary-color: #333;

div {
  color: $primary-color;
}

雖然 css 新標準 variables 可以做到一樣的事,但 sass 的瀏覽器支援度還是比較好

2. Nesting

官網寫得很清單

SCSS SYNTAX
nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  li { display: inline-block; }

  a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}

compile 完就變成:

nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
nav li {
  display: inline-block;
}
nav a {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
}

3. Mixins

有點像是函式的感覺

//  可以在 scss 檔案最上面寫函式
@mixin full() {
  width: 100%;
  height: 100%;
}

//  下面的 css 引入這個函式
.box {
  @include full();
}
//  css complie 以後會長這樣

.box {
  width: 100%;
  height: 100%;
}

4. & 代表自己

可以在 documentation syntax 裡面找資料

div {
  color: $primary-color;

  &:hover{
    color: red;
  }
}
//  compile 完以後
div {
  color: #000;
}
div:hover {
  color: red;
}

SCSS 實戰

把之前報名表單改成 scss

總結:

1.less, stylus 也是一些有名的預處理器

2.可以參考 Lidemy 官網的 結構










Related Posts

Day 15-Coffee Machine

Day 15-Coffee Machine

❖讀心❖打造「正確」學習 mindset

❖讀心❖打造「正確」學習 mindset

滲透測試基本技術 第二章(中篇)

滲透測試基本技術 第二章(中篇)


Comments