SCSS / Sass 是甚麼?

更新於 發佈於 閱讀時間約 6 分鐘
筆記僅以個人清楚理解方式記錄

知識來源

Alex 宅幹嘛 👨‍💻從 CSS 到 SASS (SCSS) 超入門觀念引導

前言

SCSS / Sass 是甚麼呢?其實這兩者都是 "預處理器" ,由於瀏覽器只看的懂 CSS ,當我們在寫小專案時可能就是直接 CSS 打一打馬上就完事了,如果是超過20、30頁以上的專案呢?想必一直寫重複的東西就算了,客戶突然要改個顏色,想到要手調 20 頁就開始頭痛了吧... 於是!!! 能節省我們一頁頁手打且能減少重複 CSS 的預處理器就誕生了。


甚麼是預處理器

其實它就像台翻譯機,在執行前進行編譯,最後產生出瀏覽器看得懂的 CSS ,類似翻譯蒟蒻。

SCSS / Sass 差別

最明顯的差異為:

raw-image

Sass

  • 使用縮排
  • 沒有大括號
  • 沒有分號
  • 沒分號跟大括號,較簡潔
  • 沒分號所以不能跟 CSS 一起混

SCSS ( Sass 基本優點都有 )

  • 有大括號
  • 有分號
  • 根本就是CSS,所以可以無痛使用
  • 更易於學習


輔助外掛 Live Server、Live Sass Compiler

以 VS Code 為編輯器

Live Server

有用 VS Code 的使用者基本對此外掛不陌生,它可以在我們本機直接開啟1個伺服器,讓我們前端能所見即所得,我們更改的異動,以下為相關設定。

//​settings.json
"liveSassCompile.settings.formats": [
{
"format": "expanded",
"extensionName": ".css",
"savePath": "/style"
},
{
"extensionName": ".min.css",
"format": "compressed",
"savePath": "/dist/style"
}
],
"liveSassCompile.settings.excludeList": [
"**/node_modules/**",
".vscode/**"
],
"liveSassCompile.settings.generateMap": true,
"liveSassCompile.settings.autoprefix": [
"> 1%",
"last 2 versions"
],
  • liveSassCompile.settings.formats
  • extensionName 副檔名
  • savePath 放置路徑
  • format ( expanded / compressed )
expanded => 未壓縮,手打的樣子 .css
compressed => 壓縮為一行,上線用 .min.css
  • liveSassCompile.settings.excludeList 不編譯指定路徑下的
  • liveSassCompile.settings.generateMap 是否產出 Sourcemap 對應文件
  • liveSassCompile.settings.autoprefix 符合條件就將 CSS 加上瀏覽器支援
  • "> 1%" 使用市佔率 >1%
  • "last 2 versions" 要能支援最新 2 個版本


主要功能

巢狀

能更清楚理解層級脈絡,但要注意不要巢狀過多層,以免影響效能。
.other-service {
display: flex;
justify-content: center;
.service-2B,
.service-2C {
width: 298px;
margin: 0 20px;
text-align: center;
}
}


變數

宣告並賦予數值,可用於統一調整、函式判斷。

基本用法

$body-bg: #FF0000;
$p-color: #18253d;
$p-font-size: 3rem;

body{
background-color: $body-bg;
}

p{
color: $p-color;
font-size: $p-font-size;
}


取用其一

$sizes: 5px 10px 15px 20px;

//設定 padding-top: 5px
h1 {
padding-top: nth($sizes, 1);
}
初始值即為 1,並不像 Array 初始值為 0。
第一個參數為作用的變數( 這邊為$padding-set ),第二個為取用的位置


還有其它方便的方法如以下,來源 Roya's Blog 以及參考 官方詳讀

$theme-colors: (
primary: blue,
danger: red,
);

.bg-primary {
background-color: inspect($theme-colors);
}
$theme-colors: (
primary: blue,
danger: red,
);

.bg-primary {
background-color: map-get($theme-colors, primary);
}


繼承

套用同組CSS,以 % 宣告再以 @extend 引用,這邊%宣告在首行,所以編譯後會彙整在首行,如果%宣告在下方,則會在下方。
raw-image
如果不用%會變成以下,會多寫出被繼承的class
raw-image


函式

能運算就複雜的邏輯
raw-image


混合

繼承很像,但不會彙整。
raw-image


進階使用

raw-image


防止編譯

我們在開發時,多少會採用模組化的方式,一定會有管理變數、函式的模組,要如何防止他們被編譯呢?

_demo.scss 只要前面加底線就可以了哦。


模組導入

模組導入分2種 @import@use 兩者,分別為 整包導入部分導入

@import

raw-image

@use

raw-image


防止偷罵被抓包

我們常常會依靠註解來幫助我們開發時的註記,其實註解也有分,那他們又差別在哪呢?

  • //xxx
  • /* */
raw-image


有發現嗎?用 // 的編譯時會省略,而 /* */ 則無,所以註解要分清楚要給編譯器看還是給團隊看的哦,以免偷罵被抓包了~


  • joker
  • 2024/05/20
avatar-img
3會員
21內容數
是一隻喜愛前端勇往直前的霹靂酷樂貓
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本章介紹了 CSS 中的顏色和背景屬性,包括文本顏色的設置方法、背景顏色和背景圖片的應用、背景重複和位置的配置,以及線性漸變和徑向漸變的使用。這些知識將幫助你更靈活地設計和美化網頁。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
這篇文章分享了 CSS Battle 第 38 題的解法,並提供了相關的技術總結。文章內容包括了使用 flex 排版處理、背景漸層的方法處理等相關技術。透過這篇文章可以學習到如何解決 CSS 切版的問題。
Thumbnail
什麼是 CSS 預處理器 CSS 預處理器是一種工具,使用專門的語法來生成 CSS 樣式表。市面上有許多 CSS 預處理器可供選擇,它們通常會提供一些純 CSS 中沒有的功能,例如變數、混入、巢狀選擇器等。這些功能可以使 CSS 結構更易讀、更易於維護,並提高開發效率。 為什麼使用 CSS 預處
Thumbnail
這是一篇關於CSS Battle系列的文章,介紹瞭如何通過CSS來處理特定圖案的切版與前端工程技術。文章分享了使用grid和radial-gradient()方法來處理特定圖案的解法以及相關技術總結。
Thumbnail
這篇文章將解析CSS Battle第136題的解法,主要考驗基本CSS置中排版的能力,並提供了作者的解法與技術總結。透過互動學習,讓想要學習或練習基礎切版的朋友可以參與討論。
前言 終於要到這個振奮人心的章節了,我們終於要來學習,如何讓自己的網頁更加美觀。 但在這之前,我們肯定得先學習,如何將我們的 CSS 檔案,連接到 HTML 當中。 連結分類 首先,我們在連結 CSS 的方法中,有分為三種: 內聯連結 在 .html 當中,任一標籤的裡面,用屬性 s
Thumbnail
本文介紹CSS Battle題目#73的解法,涵蓋了分層拆解圖形、使用grid排版、調整樣式等基礎技巧。
Thumbnail
您對前端有興趣,對CSS不陌生。CSS新特性前應瞭解基本內容。CSS屬性制定經歷過程,瀏覽器私有前綴及處理,開發者對新特性漸進增強,優雅降級處理,Web標準定義、作用等。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本章介紹了 CSS 中的顏色和背景屬性,包括文本顏色的設置方法、背景顏色和背景圖片的應用、背景重複和位置的配置,以及線性漸變和徑向漸變的使用。這些知識將幫助你更靈活地設計和美化網頁。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
這篇文章分享了 CSS Battle 第 38 題的解法,並提供了相關的技術總結。文章內容包括了使用 flex 排版處理、背景漸層的方法處理等相關技術。透過這篇文章可以學習到如何解決 CSS 切版的問題。
Thumbnail
什麼是 CSS 預處理器 CSS 預處理器是一種工具,使用專門的語法來生成 CSS 樣式表。市面上有許多 CSS 預處理器可供選擇,它們通常會提供一些純 CSS 中沒有的功能,例如變數、混入、巢狀選擇器等。這些功能可以使 CSS 結構更易讀、更易於維護,並提高開發效率。 為什麼使用 CSS 預處
Thumbnail
這是一篇關於CSS Battle系列的文章,介紹瞭如何通過CSS來處理特定圖案的切版與前端工程技術。文章分享了使用grid和radial-gradient()方法來處理特定圖案的解法以及相關技術總結。
Thumbnail
這篇文章將解析CSS Battle第136題的解法,主要考驗基本CSS置中排版的能力,並提供了作者的解法與技術總結。透過互動學習,讓想要學習或練習基礎切版的朋友可以參與討論。
前言 終於要到這個振奮人心的章節了,我們終於要來學習,如何讓自己的網頁更加美觀。 但在這之前,我們肯定得先學習,如何將我們的 CSS 檔案,連接到 HTML 當中。 連結分類 首先,我們在連結 CSS 的方法中,有分為三種: 內聯連結 在 .html 當中,任一標籤的裡面,用屬性 s
Thumbnail
本文介紹CSS Battle題目#73的解法,涵蓋了分層拆解圖形、使用grid排版、調整樣式等基礎技巧。
Thumbnail
您對前端有興趣,對CSS不陌生。CSS新特性前應瞭解基本內容。CSS屬性制定經歷過程,瀏覽器私有前綴及處理,開發者對新特性漸進增強,優雅降級處理,Web標準定義、作用等。