Compass 和 SASS 之間有什麼區別?
SASS 是 CSS 的語言擴充套件,它添加了新功能,使編寫樣式表變得更容易。同時,Compass 是構建在 SASS 之上的框架,它提供了更多功能並簡化了樣式表的開發。
在本教程中,我們將探討 SASS 和 Compass 的功能,並重點介紹這兩個工具之間的區別。
什麼是 SASS?
SASS 就像一個輔助工具,使編寫 CSS 變得更容易和更高效。它提供了普通 CSS 中沒有的其他功能。
SASS 的一些關鍵功能包括
變數 − 我們可以定義一次值並在整個樣式表中使用它們,從而更輕鬆地更新以後的樣式。
巢狀 − 巢狀允許我們透過將相關的選擇器組合在一起組織樣式,這使得閱讀和維護程式碼變得更容易。
Mixin − Mixin 是可重用的 CSS 程式碼塊,可以定義一次並在多個樣式表中使用,從而節省我們的時間和精力。
繼承 − 藉助 SASS 中的繼承,我們可以定義一組可以被其他選擇器繼承的樣式,從而減少我們需要編寫的程式碼量。
控制指令 − SASS 包括強大的控制指令,如 @if、@for 和 @each,它們允許我們在樣式表中建立複雜的邏輯。
什麼是 Compass?
另一方面,Compass 對於任何希望簡化 CSS 開發過程並更有效地建立樣式表的人來說都是一個強大的工具。
Compass 提供了各種有用的功能和預構建程式碼庫,並有助於使網站樣式設計過程更快、更容易。
Compass 的一些關鍵功能包括
Mixin 庫 − Compass 包含一個 Mixin 庫,涵蓋了各種常見的 CSS 任務,例如跨瀏覽器支援、漸變和 CSS3 功能。
精靈圖 − Compass 中的此功能允許我們輕鬆建立精靈圖(包含多個較小影像的影像)並在樣式表中使用它們。
供應商字首 − Compass 提供自動供應商字首,確保我們的樣式在不同的瀏覽器中都能正常工作。
網格 − Compass 包含一個靈活的網格系統,允許我們快速建立響應式佈局。
排版 − Compass 包含一系列與排版相關的 Mixin,使建立漂亮的排版變得容易。
Compass 和 SASS 之間的區別
以下是 Compass 和 SASS 之間的一些主要區別 -
差異基礎 |
SASS |
Compass |
|---|---|---|
語言與框架 |
SASS 是一種 CSS 預處理器,透過新增新功能擴充套件了 CSS 的功能。 |
Compass 是一個 CSS 框架,提供了一組預構建的工具和函式來簡化樣式表的開發。 |
特性 |
SASS 透過新增新功能(如變數、巢狀、Mixin 和繼承)擴充套件了 CSS 的功能 |
Compass 提供了一個可重用 CSS 程式碼庫以及其他工具和函式。 |
預處理 |
SASS 需要一個預處理器才能將 SASS 程式碼編譯成 CSS 程式碼。 |
Compass 需要 SASS 和預處理器才能工作。 |
相容性 |
SASS 更靈活,可以與任何 CSS 框架一起使用 |
Compass 是專門為與 SASS 一起使用而構建的。如果我們已經在使用其他 CSS 框架,我們仍然可以與它一起使用 SASS,而 Compass 可能不相容。 |
社群和資源 |
SASS 擁有更大的社群和更多可線上獲取的資源,這使得更容易找到幫助和支援。 |
Compass 擁有較小的社群和較少的可用資源,這可能使在需要時更難找到幫助。 |
編譯速度 |
與 Compass 相比,SASS 的編譯速度更快。 |
由於包含了額外的程式碼和函式,Compass 的編譯時間比 SASS 長。 |
維護 |
由於需要手動更新和管理程式碼,SASS 可能需要更多維護。 |
Compass 透過提供一組易於更新和維護的預構建工具和函式來簡化維護。 |
示例:Compass
在此示例中,我們首先使用 @import "compass/utilities/color/contrast" 匯入 Compass 框架。此匯入語句包含用於顏色對比的 Compass 實用程式,該實用程式提供了一組用於處理顏色對比比率的函式,例如 contrast() 和 lighten()。
接下來,我們定義了一個名為 text-style 的 Mixin,它接受兩個引數:$color 和 $font-size。然後,我們將 text-style Mixin 應用於兩個不同的 CSS 選擇器:.song-title 和 .song-lyrics。
最後,使用者可以在結果中看到元素的邊框顏色是使用 Compass 函式 contrast() 生成的。
Index.html
<html>
<head>
<title> Compass Example </title>
<style>
@import "compass/utilities/color/contrast";
//styles
@mixin text-style($color, $font-size) {
color: $color;
font-size: $font-size;
background-color: contrast($color);
.song-title {
@include text-style(blue, 24px);
}
.song-lyrics {
@include text-style(red, 18px);
}
}
</style>
</head>
<body>
<h1 class = "song-title"> Way Back Home </h1>
<p class = "song-lyrics"> Lorem ipsum dolor sit amet. </p>
</body>
</html>
輸出

示例:SASS
在此示例中,我們使用 SASS 來定義變數和樣式。我們為 body 元素定義了一些基本樣式,包括背景顏色和字體系列。
接下來,我們將 .header 選擇器巢狀在 body 選擇器內,併為 .header 內的 'a' 元素定義一些樣式。
使用者可以在輸出中看到,&:hover' 中的 '&' 符號將生成 .header a:hover 的選擇器。
Index.html
<html>
<head>
<title> SASS Example </title>
<style>
// variables
$base-color: blue;
$border-dark: rgba(black, 0.88);
$font-stack: "Lato", sans-serif;
// styles
body {
background-color: $base-color;
font-family: $font-stack;
font-size: 2rem;
text-align: center;
margin: 2rem;
}
//selectors
.header {
background-color: #fff;
padding: 1rem;
border: 0.5rem solid $border-dark;
a {
color: $base-color;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
</style>
</head>
<body>
<header class = "header">
<h1> Hello World! </h1>
<h2> This is a Example of <a href = "https://sass.lang.tw/"> SCSS </a> </h2>
</header>
</body>
</html>
輸出

結論
使用者瞭解到,SASS 主要用於改進 CSS 程式碼的結構和組織,而 Compass 用於透過提供預構建工具和實用程式庫來增強 CSS 的功能。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP