iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
Modern Web

CSS的預處理器-SASS/SCSS系列 第 2

DAY 2.SASS與SCSS的起源/兩者的差異及何者適合你?

  • 分享至 

  • xImage
  •  

一、SASS與SCSS的起源與歷史

CSS(Cascading Style Sheets)是由W3C(萬維網聯盟)於1996年推出的一種樣式表語言,用來控制網頁的外觀和格式。其發展使得網頁樣式與結構分離,極大地提高了開發效率與頁面維護的靈活性,成為現代網頁開發不可或缺的技術。

SASS(Syntactically Awesome Stylesheets)誕生於2006年,由Hampton Catlin創立,旨在解決CSS在大型項目中的可維護性問題。當時的CSS缺乏變量、邏輯運算等功能,導致樣式表在規模擴展時變得難以管理。SASS透過新增變量、巢狀規則、混入等功能,讓開發者可以撰寫更具結構性、模組化的CSS樣式表。初期SASS的語法非常簡潔,省略了大括號和分號,與CSS語法差異較大。

SCSS於2010年隨SASS 3版本推出,是SASS的語法變體。SCSS保持了SASS的所有功能,但語法完全兼容CSS,使開發者能夠無縫過渡並逐步引入SASS的高級功能。SCSS的推出滿足了希望保持標準CSS格式同時享有SASS強大功能的需求,因此逐漸成為主流選擇。

二、SASS與SCSS的主要差異

1.語法格式

  • SASS:不使用大括號 {} 和分號 ;,更加簡潔。
// SASS 語法
$primary-color: #3498db
body
  background-color: $primary-color
  font-size: 16px
  • SCSS:與CSS保持一致,使用大括號 {} 和分號 ;
// SCSS 語法
$primary-color: #3498db;
body {
  background-color: $primary-color;
  font-size: 16px;
}

2.可用性

  • SASS:語法更簡潔,但對於那些熟悉CSS的開發者來說,學習曲線較為陡峭。

  • SCSS:由於完全兼容CSS,學習過程更加平滑,開發者可以將現有的CSS文件直接轉換成SCSS,並逐漸引入SASS的高級功能。

3.擴展性

  • SASS與SCSS:兩者在功能上完全一致,支持變量、巢狀、混入、繼承、函數等,只是語法表達形式不同。

4.兼容性

  • SASS:由於語法簡潔,與CSS不完全兼容,直接轉換CSS為SASS會需要一些手動調整。
  • SCSS:完全向後兼容CSS,可以直接將CSS文件改為.scss擴展名並繼續使用。

三、SASS與SCSS的語法比較:哪個適合你?

1.語法風格

在先前的內容,我們介紹兩者的語法格式差異,以及程式碼的範例,需要者可於先前內容參考。

  • SASS(縮進語法): SASS的語法不使用大括號 {} 和分號 ;,語法更加簡潔,強調縮進來表示層次關係,類似Python或Ruby。
  • SCSS(Sassy CSS): SCSS完全兼容CSS,語法與標準CSS相同,使用大括號 {} 和分號 ;,適合熟悉CSS的開發者。

2.哪個適合你?

  • 選擇SASS:如果你喜歡簡潔的語法,或者是快速編寫樣式表,SASS可能更適合你。
  • 選擇SCSS:如果你來自CSS背景,想要漸進式引入SASS的功能,同時保持CSS的兼容性,那麼SCSS是更好的選擇。而SCSS的語法也更容易在大型團隊中推廣,因為大多數開發者都熟悉CSS。

總結來說,SCSS由於其與CSS的一致性,更適合大多數開發者,特別是從CSS轉向預處理器的初學者。而SASS則適合那些追求簡潔語法和快速開發的開發者。無論選擇哪個,功能上都能滿足現代開發需求!

3.我的選擇

我本身比較熟悉CSS開發,加上比較不熟悉Python的開發(上次學的時候是高三),因此接下來主要使用跟CSS較相近的SCSS來練習。
/images/emoticon/emoticon28.gif


上一篇
DAY 1.為何選此主題/什麼是CSS預處理器/為什麼需要預處理器?
下一篇
DAY 3.SASS/SCSS的優勢與挑戰/如何安裝並開發環境
系列文
CSS的預處理器-SASS/SCSS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言