SlideShare a Scribd company logo
1 of 51
從CSS到SASS的開發旅程
技術分享/多奇數位Anna
簡介 用法 架構 案例
SASS簡介
SASS是什麼?
SASS簡介
CSS不好嗎?
圖片來源
SASS簡介
SASS
用來寫CSS的語言
SASS簡介
為什麼要學SASS?
SASS簡介
圖片來源
CSS不好嗎?
SASS簡介
沒有架構
較難維護
圖片來源
圖片來源圖片來源
SASS簡介
SASS有很厲害嗎?
SASS簡介
圖片來源
SASS特性
• Variables 變數
• Nesting 巢狀
• Mixins 混合(function)
• Inheritance 繼承
SASS簡介
• 重複使用
• 簡潔、易維護
(一個SASS檔案不超過200行
Nesting不超過3層)
SASS簡介
沒有架構
較難維護
圖片來源
SASS簡介
圖片來源1 圖片來源2
SASS簡介
誰要學SASS?
圖片來源
圖片來源
SASS簡介
設計師→前端
圖片來源
SASS簡介
挑戰全端工程師
SASS用法
使用SASS,怎麼開始?
SASS用法
安裝與設定
SASS安裝
DEMO
SASS設定
config.rb設定
• 是否顯示註解
• 是否支援中文註解
• 絕對與相對路徑設定等
SASS用法
基本SASS(SCSS)怎麼寫?
SASS用法
SASS/SCSS和CSS的語法一樣,
只是寫法有些許差異。
SASS用法
SCSS SASS
寫法像原本的CSS 少了分號; 和大括號{}
寫法較為簡潔
冒號後注意要空白,
否則會出錯
SASS用法
CSS SCSS SASS
body{
background-color:#ffffff;
}
body {
background-color: #ffffff;
}
body
background-color: #ffffff
SASS用法
轉換小工具
CSS SCSS SASS
css2sass sasstoscss Sass to Css
SASS特性
• Variables 變數
• Nesting 巢狀
• Mixins 混合(function)
• Inheritance 繼承
SASS用法- Variables
• 支援數字、字串、布林、顏色、
空值
• 支援運算
SASS用法- Variables
1em+1em
1em-1em
1in+72pt
8px*5
22%5
2em
0em
2in
40px
2
Percentage(30/60)
round(6.8)
ceil(5.3)
floor(5.8)
abs(-66)
50%
7
6
5
66
Math Operators Number Functions
資料參考
SASS用法- Variables
Percentage(30/60)
round(6.8)
ceil(5.3)
floor(5.8)
abs(-66)
百分比
四捨五入
無條件進入
無條件捨去
絕對值
Number Functions
資料參考
50%
7
6
5
66
SASS用法- Variables(基本)
CSS SASS
div {
color: #1875e7;
}
$blue: #1875e7
div
color: $blue
CSS SASS
.box {
border-left-radius: 5px;
}
$side: left
.box
border-#{$side}-radius: 5px
SASS用法- Variables(字串)
CSS
.title {
left: 150px;
right: 20%;
}
SASS
$var: 2
.title
left: 50px + 100px
height: $var * 10%
SASS用法- Variables(運算)
SASS用法- Variables
DEMO
SASS用法- Nesting
• 簡潔的巢狀架構
• 可讀性高
CSS
div p {
color: red;
}
SASS
div p
color: red
SASS用法- Nesting
CSS
ul {
margin: 0;
}
ul li {
padding-left: 10px;
}
ul li.top {
padding-left: 0px;
}
SASS
ul
margin: 0
li
padding-left: 10px
&.top
padding-left: 0px
SASS用法- Nesting
SASS用法- Nesting
DEMO
SASS用法- Mixins
將你的程式碼包裝起來,
並可代入參數重複使用。
CSS
.box1 {
width: 100%;
height: 100%;
}
.box2 {
width: 100%;
height: 200px;
}
SASS
=size($width, $height: $width)
width: $width
height: $height
.box1
+size(100%)
.box2
+size(100%, 200px)
SASS用法- Mixins
SASS用法- Mixins
DEMO
SASS用法- Mixins
別人幫你整理好的MIXINS
SASS用法- Extend/Inheritance
用來合併CSS樣式,
把相同的程式碼集中起來。
CSS
.red-color, a, .error {
color: red; }
.error {
font-weight: bold; }
SASS
.red-color
color: red
a
@extend .red-color
.error
font-weight: bold
@extend .red-color
SASS用法- Inheritance
SASS用法- Inheritance
DEMO
SASS組織
• 讓你的CSS模組化
• 不會產生額外的CSS檔案
SASS組織- @import
DEMO
SASS使用心得
• 萬事起頭難 ( ´_ゝ`)
• 樣式命名很重要!
• 一開始的規劃很重要!
• 建立完善的SASS架構,
就可以開開心心改需求,快快樂樂高效率!
從CSS到SASS的開發旅程
THANKS

More Related Content

What's hot (8)

高雄前端社群 #4 psdtohtml workshop
高雄前端社群 #4 psdtohtml workshop高雄前端社群 #4 psdtohtml workshop
高雄前端社群 #4 psdtohtml workshop
 
自從學會Sass / Compass後,考試都考100分!
自從學會Sass / Compass後,考試都考100分!自從學會Sass / Compass後,考試都考100分!
自從學會Sass / Compass後,考試都考100分!
 
教網部落格模版設計
教網部落格模版設計教網部落格模版設計
教網部落格模版設計
 
CSS 分享 (2) CSS 基本概念與語法
CSS 分享 (2) CSS 基本概念與語法CSS 分享 (2) CSS 基本概念與語法
CSS 分享 (2) CSS 基本概念與語法
 
CSS 分享 (5) Ending
CSS 分享 (5) EndingCSS 分享 (5) Ending
CSS 分享 (5) Ending
 
Jass in coserv
Jass in coservJass in coserv
Jass in coserv
 
SASS入門實作
SASS入門實作SASS入門實作
SASS入門實作
 
Css布局
Css布局Css布局
Css布局
 

Viewers also liked

入門Gulp - 前端自動化開發工具
入門Gulp - 前端自動化開發工具入門Gulp - 前端自動化開發工具
入門Gulp - 前端自動化開發工具Anna Su
 
webpack 入門
webpack 入門webpack 入門
webpack 入門Anna Su
 
前端界流傳的神奇招式
前端界流傳的神奇招式前端界流傳的神奇招式
前端界流傳的神奇招式Anna Su
 
Scholarship connect luncheon slideshow
Scholarship connect luncheon slideshowScholarship connect luncheon slideshow
Scholarship connect luncheon slideshowDaytonFoundation
 
Strategy and Business Development Practices in the Danish Construction Indust...
Strategy and Business Development Practices in the Danish Construction Indust...Strategy and Business Development Practices in the Danish Construction Indust...
Strategy and Business Development Practices in the Danish Construction Indust...Christian Thuesen
 
How #WMTlive bonded ip connections can change television formats
How #WMTlive bonded ip connections can change television formatsHow #WMTlive bonded ip connections can change television formats
How #WMTlive bonded ip connections can change television formatsJan De Wever
 
Bank ≠ Innovation by Johan Löfmark at Bank 2.0
Bank ≠ Innovation by Johan Löfmark at Bank 2.0Bank ≠ Innovation by Johan Löfmark at Bank 2.0
Bank ≠ Innovation by Johan Löfmark at Bank 2.0Tieto Corporation
 
pengolahan Limbah padat organik menjadi produk fungsional
pengolahan Limbah padat organik menjadi produk fungsionalpengolahan Limbah padat organik menjadi produk fungsional
pengolahan Limbah padat organik menjadi produk fungsionalZuhriah As'ad
 
Makalah aerob anaerob
Makalah aerob anaerobMakalah aerob anaerob
Makalah aerob anaerobYusra Yuliana
 
Validación de la idea de negocio
Validación de la idea de negocioValidación de la idea de negocio
Validación de la idea de negocioElee GP
 
evento aparente de amenaza a la vida alte
evento aparente de amenaza a la vida alteevento aparente de amenaza a la vida alte
evento aparente de amenaza a la vida altealejandro amado molina
 
Actividad Colaborativa Wiki 13 - Manejo Integrado del Agua
Actividad Colaborativa Wiki 13 - Manejo Integrado del AguaActividad Colaborativa Wiki 13 - Manejo Integrado del Agua
Actividad Colaborativa Wiki 13 - Manejo Integrado del AguaHarold Moreno
 
De thi casio mon toan 12 nam hoc 20132014
De thi casio mon toan 12 nam hoc 20132014De thi casio mon toan 12 nam hoc 20132014
De thi casio mon toan 12 nam hoc 20132014Lý Công
 

Viewers also liked (17)

入門Gulp - 前端自動化開發工具
入門Gulp - 前端自動化開發工具入門Gulp - 前端自動化開發工具
入門Gulp - 前端自動化開發工具
 
webpack 入門
webpack 入門webpack 入門
webpack 入門
 
前端界流傳的神奇招式
前端界流傳的神奇招式前端界流傳的神奇招式
前端界流傳的神奇招式
 
Symbolic award
Symbolic awardSymbolic award
Symbolic award
 
Scholarship connect luncheon slideshow
Scholarship connect luncheon slideshowScholarship connect luncheon slideshow
Scholarship connect luncheon slideshow
 
Strategy and Business Development Practices in the Danish Construction Indust...
Strategy and Business Development Practices in the Danish Construction Indust...Strategy and Business Development Practices in the Danish Construction Indust...
Strategy and Business Development Practices in the Danish Construction Indust...
 
How #WMTlive bonded ip connections can change television formats
How #WMTlive bonded ip connections can change television formatsHow #WMTlive bonded ip connections can change television formats
How #WMTlive bonded ip connections can change television formats
 
Idea de nogocio
Idea de nogocioIdea de nogocio
Idea de nogocio
 
Summer 2012
Summer 2012Summer 2012
Summer 2012
 
Bank ≠ Innovation by Johan Löfmark at Bank 2.0
Bank ≠ Innovation by Johan Löfmark at Bank 2.0Bank ≠ Innovation by Johan Löfmark at Bank 2.0
Bank ≠ Innovation by Johan Löfmark at Bank 2.0
 
Episodios potencialmente letales
Episodios potencialmente letalesEpisodios potencialmente letales
Episodios potencialmente letales
 
pengolahan Limbah padat organik menjadi produk fungsional
pengolahan Limbah padat organik menjadi produk fungsionalpengolahan Limbah padat organik menjadi produk fungsional
pengolahan Limbah padat organik menjadi produk fungsional
 
Makalah aerob anaerob
Makalah aerob anaerobMakalah aerob anaerob
Makalah aerob anaerob
 
Validación de la idea de negocio
Validación de la idea de negocioValidación de la idea de negocio
Validación de la idea de negocio
 
evento aparente de amenaza a la vida alte
evento aparente de amenaza a la vida alteevento aparente de amenaza a la vida alte
evento aparente de amenaza a la vida alte
 
Actividad Colaborativa Wiki 13 - Manejo Integrado del Agua
Actividad Colaborativa Wiki 13 - Manejo Integrado del AguaActividad Colaborativa Wiki 13 - Manejo Integrado del Agua
Actividad Colaborativa Wiki 13 - Manejo Integrado del Agua
 
De thi casio mon toan 12 nam hoc 20132014
De thi casio mon toan 12 nam hoc 20132014De thi casio mon toan 12 nam hoc 20132014
De thi casio mon toan 12 nam hoc 20132014
 

More from Anna Su

Clean Architecture
Clean ArchitectureClean Architecture
Clean ArchitectureAnna Su
 
2017 台灣成長駭客年會 與會心得分享
2017 台灣成長駭客年會 與會心得分享2017 台灣成長駭客年會 與會心得分享
2017 台灣成長駭客年會 與會心得分享Anna Su
 
PWA 應用與價值
PWA 應用與價值PWA 應用與價值
PWA 應用與價值Anna Su
 
初探 DevOps 的世界
初探 DevOps 的世界初探 DevOps 的世界
初探 DevOps 的世界Anna Su
 
Why Redux-Observable?
Why Redux-Observable?Why Redux-Observable?
Why Redux-Observable?Anna Su
 
NASA hackathon - Sea More
NASA hackathon - Sea MoreNASA hackathon - Sea More
NASA hackathon - Sea MoreAnna Su
 
用 Javascript 實現你的想像
用 Javascript 實現你的想像用 Javascript 實現你的想像
用 Javascript 實現你的想像Anna Su
 
PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽Anna Su
 
網站建置流程
網站建置流程網站建置流程
網站建置流程Anna Su
 
網站建置初探
網站建置初探網站建置初探
網站建置初探Anna Su
 
PWA 與 Service Worker
PWA 與 Service WorkerPWA 與 Service Worker
PWA 與 Service WorkerAnna Su
 
2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事
2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事
2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事Anna Su
 
從一個超簡單範例開始學習 Canvas
從一個超簡單範例開始學習 Canvas從一個超簡單範例開始學習 Canvas
從一個超簡單範例開始學習 CanvasAnna Su
 
Rucksack 裝滿神奇 css 的後背包
Rucksack 裝滿神奇 css 的後背包Rucksack 裝滿神奇 css 的後背包
Rucksack 裝滿神奇 css 的後背包Anna Su
 
CSS modules 簡單玩
CSS modules 簡單玩CSS modules 簡單玩
CSS modules 簡單玩Anna Su
 
Trello - 規劃工作與生活的管理工具
Trello - 規劃工作與生活的管理工具Trello - 規劃工作與生活的管理工具
Trello - 規劃工作與生活的管理工具Anna Su
 
幸福快樂的完美結局
幸福快樂的完美結局幸福快樂的完美結局
幸福快樂的完美結局Anna Su
 
偷呷步的網站快速入門
偷呷步的網站快速入門偷呷步的網站快速入門
偷呷步的網站快速入門Anna Su
 
調配網站的明星花露水
調配網站的明星花露水調配網站的明星花露水
調配網站的明星花露水Anna Su
 
搭載網頁核心的基本架構
搭載網頁核心的基本架構搭載網頁核心的基本架構
搭載網頁核心的基本架構Anna Su
 

More from Anna Su (20)

Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
2017 台灣成長駭客年會 與會心得分享
2017 台灣成長駭客年會 與會心得分享2017 台灣成長駭客年會 與會心得分享
2017 台灣成長駭客年會 與會心得分享
 
PWA 應用與價值
PWA 應用與價值PWA 應用與價值
PWA 應用與價值
 
初探 DevOps 的世界
初探 DevOps 的世界初探 DevOps 的世界
初探 DevOps 的世界
 
Why Redux-Observable?
Why Redux-Observable?Why Redux-Observable?
Why Redux-Observable?
 
NASA hackathon - Sea More
NASA hackathon - Sea MoreNASA hackathon - Sea More
NASA hackathon - Sea More
 
用 Javascript 實現你的想像
用 Javascript 實現你的想像用 Javascript 實現你的想像
用 Javascript 實現你的想像
 
PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽
 
網站建置流程
網站建置流程網站建置流程
網站建置流程
 
網站建置初探
網站建置初探網站建置初探
網站建置初探
 
PWA 與 Service Worker
PWA 與 Service WorkerPWA 與 Service Worker
PWA 與 Service Worker
 
2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事
2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事
2016 PIXNET HACKATHON Lightning talk - 做網站不是只有一個人的事
 
從一個超簡單範例開始學習 Canvas
從一個超簡單範例開始學習 Canvas從一個超簡單範例開始學習 Canvas
從一個超簡單範例開始學習 Canvas
 
Rucksack 裝滿神奇 css 的後背包
Rucksack 裝滿神奇 css 的後背包Rucksack 裝滿神奇 css 的後背包
Rucksack 裝滿神奇 css 的後背包
 
CSS modules 簡單玩
CSS modules 簡單玩CSS modules 簡單玩
CSS modules 簡單玩
 
Trello - 規劃工作與生活的管理工具
Trello - 規劃工作與生活的管理工具Trello - 規劃工作與生活的管理工具
Trello - 規劃工作與生活的管理工具
 
幸福快樂的完美結局
幸福快樂的完美結局幸福快樂的完美結局
幸福快樂的完美結局
 
偷呷步的網站快速入門
偷呷步的網站快速入門偷呷步的網站快速入門
偷呷步的網站快速入門
 
調配網站的明星花露水
調配網站的明星花露水調配網站的明星花露水
調配網站的明星花露水
 
搭載網頁核心的基本架構
搭載網頁核心的基本架構搭載網頁核心的基本架構
搭載網頁核心的基本架構
 

從CSS到SASS的開發旅程