SASS該怎麼寫?會和純CSS寫法差很多嗎? - W3HexSchool
文章推薦指數: 80 %
所以開始就有人為CSS加入了這些功能, 因此也產生出『CSS預處理器(css preprocessor)』的語言, 除了Sass以外,還有Less與stylus等語言 ...
W3Hexschool
學習單元(current)
共筆部落格(current)
X
未分類
sass
什麼是SASS?它真的能加速我寫CSS的效率嗎?
SASS該怎麼寫?會和純CSS寫法差很多嗎?
W3HexSchool
sass
SASS該怎麼寫?會和純CSS寫法差很多嗎?
SASS該怎麼寫?會和純CSS寫法差很多嗎?
洧杰
已發佈
2019-9-11
寫過CSS的朋友都知道,CSS並不像是其他程式語言擁有類似變數、條件等方式來撰寫,僅只能一行行來進行編輯,所以當今天有很多地方需要去做修正時,就必須花很多時間逐行去修正,在維護與重製上就必須花更多的時間去調整。
所以開始就有人為CSS加入了這些功能,因此也產生出『CSS預處理器(csspreprocessor)』的語言,除了Sass以外,還有Less與stylus等語言,
而他實踐的手法則是編輯Sass檔案,透過編譯後就還是會變成網頁看得懂的CSS檔,所以並非是在HTML裡面載入Sass檔,仍然還在引入CSS檔案..寫過CSS的朋友都知道,CSS並不像是其他程式語言擁有類似變數、條件等方式來撰寫,僅只能一行行來進行編輯,所以當今天有很多地方需要去做修正時,就必須花很多時間逐行去修正,在維護與重製上就必須花更多的時間去調整。
所以開始就有人為CSS加入了這些功能,因此也產生出『CSS預處理器(csspreprocessor)』的語言,除了Sass以外,還有Less與stylus等語言,
而他實踐的手法則是編輯Sass檔案,透過編譯後就還是會變成網頁看得懂的CSS檔,所以並非是在HTML裡面載入Sass檔,仍然還在引入CSS檔案,
當初我在猶豫要不要學SASS的時候,其實這一點有讓我很感冒,因為它比之前寫原生CSS的差異在於,寫SASS時必須轉檔成CSS,而且還必須等他編譯完才可看到結果感到很不方便。
直到後來會讓我想學習的動機在於,看一些國際的網頁設計師在github分享的網頁樣式都時常會釋出SASS檔出來,再者也看到國內的資深網頁設計師也發文介紹它的強大之處,也由於現前css撰寫上遇到不少效率瓶頸,才終於讓我想投入學習,雖然陣痛期難免,但熟悉以後開發效率真的快到個爆炸...就像犀利人妻的經典台詞:『我再也回不去了』...冏
--
所以這一章節就先來介紹SASS、SCSS的寫法,我們先來看一段CSS碼,
.menu{
position:relative;
}
.menuli{
float:left
}
.menua{
display:block
}
.menuspan{
color:#fff
}
.menui{
background:url(dot-icon.png);
}這一段CSS是一個很常見的列表式選單的設計,在.menu的範圍內有其他的htmltag需要設定,這一段程式碼在寫純CSS時會遭遇到一些問題,
1.新增:每次都必須重新打一次.menu後才有辦法繼續寫一個樣式的設定,例如.menua、.menuli2.調整:程式碼寫完後,日後要修改/維護/複製時,.menu要改其它名稱就必須逐行去修改,極為不方便。
3.除錯:寫純css時,如果不小心恍神少了個「;」、「{」、「}」時,CSS爛掉或沒起效用通常都需要花額外的時間除錯。
上述三個問題,假使習慣撰寫SASS後,都可大量減輕其負擔:首先介紹SASS的語法
.menu
position:relative
li
float:left
a
display:block
span
color:white
i
background:url(dot-icon.png)可以看得出來這樣的語法極其精簡,也去掉了分號與大括號,讓你可以專注在撰寫CSS上,
撰寫SASS的繼承下一個class流程為就按Enter後,下一行推一個Tab,所以如果我要.menu裡面又有一個.active要設定時,就必須這樣子寫:
.menu
position:relative
.active
color:#000日後如果你class有衝突,就直接把最上頭的.menu改成.header,這樣子編譯出來的css也會自動幫你進行修改。
因為it邦支援的高亮支援不太ok,所以就錄製一段影片讓大家可以了解撰寫SASS的流程,請用全螢幕+720p來瀏覽
1.我用sublime編輯器左右開兩個視窗,左邊放sass檔案,寫的過程會按ctrl+s儲存,儲存後右邊的css檔案會自動編譯更新css。
2.36秒我希望我的a連結是在li裡面,所以全選後用tab推進3.1分24秒處的&字號則是繼承前面的class所用,打w300按tab會直接show出width:300是因為我裝了sublime的插件emmet4.1分34秒我全選後向左與向右推進是用了ctrl+[與ctrl+]熱鍵,藉此讓大家了解繼承的關係。
5.1分49秒則是Sass強大之處,以後不要一直複製貼上或改class需要同時改很多個地方,只要改一處其他也會更著變動。
PS:當然使用這個東西時要注意一些細節,冒號後一致要加個空白,再寫顏色,另外在推進的時候要用Tab來推進,不能使用兩次空白,但如果你是用sublimetext3編輯器來撰寫的話,上述的問題也可解決,它會在你撰寫css時自動幫你在冒號後留空白。
有興趣的朋友也可以用http://codepen.io/的線上編輯器來玩看看
關於筆者
暱稱:洧杰
介紹:六角學院校長,熱愛分享與交流的前端工程師,目前專注於兼容桌面/移動網頁前端開發,期間已協助數百位平面設計師,網頁設計師導入標準網頁設計。
筆者Facebook
上一篇什麼是SASS?它真的能加速我寫CSS的效率嗎?
延伸文章資訊
- 1Sass/SCSS 入門:變數、巢狀、混入、繼承 - HackMD
tags: `HTML & CSS` `SASS` `CSS 預處理器` # Sass/SCSS 入門:變數、巢狀、混入、繼承其實過去在Lidemy 課程中,也有提過CSS 預處.
- 2[CSS] Sass 入門教學-新手上路重點摘要(上) - iT 邦幫忙
Sass 是CSS Preprocessor(CSS 預處理器)的一種; 讓CSS 設計過程能夠更加便利、有結構、更簡潔、更彈性; 完成SASS / SCSS 檔後需編譯為CSS 檔 ...
- 3熱門Sass線上課程- 更新於[2022 June] | Udemy
向最受好評的網頁開發講師學習如何使用CSS 的擴充功能Sass。不論您是想要瞭解Sass 程式語言的基本用法,或是想要運用Sass 打造美觀的網站,Udemy 都能提供合適的課程, ...
- 4SASS在劍橋英語詞典中的解釋及翻譯 - Cambridge Dictionary
sass的意思、解釋及翻譯:1. talk or behaviour that is rude and shows no respect: 2. to talk to someone in a ...
- 5[Sass]學習筆記
Sass 是一個CSS 預處理器。Sass 是CSS 擴展語言,可以幫助我們減少CSS 重複的代碼,節省開發時間。Sass 完全兼容所有版本的CSS。Sass 擴展了CSS3,增加了規則、變量、...