LESS 和 SASS 之間的區別是什麼?


SASS 和 LESS 是兩種流行的 CSS 預處理器,它們提供了額外的功能來增強 CSS 編碼效率。雖然這兩個預處理器非常相似,但它們之間也存在一些差異,使它們彼此區分開來。

在本教程中,我們將探討 SASS 和 LESS 之間的差異。

什麼是 SASS?

SASS,也稱為 Syntactically Awesome Style Sheets,提供變數、巢狀和混合等功能,以簡化和簡化 CSS 編寫過程。SASS 程式碼以 .scss 或 .sass 檔案的形式編寫,並編譯成常規的 CSS 檔案以在 Web 上使用。

什麼是 LESS?

另一方面,LESS 提供了類似的功能,例如變數、混合和巢狀,以簡化和組織 CSS 程式碼。它還包括函式、運算和控制指令來簡化複雜的樣式任務。LESS 檔案以 .less 格式編寫,可以使用 LESS 編譯器編譯成常規的 CSS 檔案。

LESS 和 SASS 之間的差異

以下是 LESS 和 SASS 之間的一些主要差異 -

差異依據

SASS

LESS

語法

Sass 使用 .scss 或 .sass 語法。變數使用美元符號 ($) 定義,混合使用 at 符號 (@) 定義。

LESS 使用 .less 語法。變數和混合使用 at 符號 (@) 定義。

程式碼執行

由於其更廣泛的功能集,Sass 的程式碼執行速度比 LESS 慢,這可能需要更長的時間來編譯。

由於其輕量級特性和較少的功能,LESS 的程式碼執行速度比 Sass 快。

編譯

SASS 使用 Ruby 將程式碼編譯成 CSS。

LESS 使用 JavaScript 將程式碼編譯成 CSS。

變數

SASS 允許使用全域性變數,這些變數可以定義一次並在整個程式碼庫中使用,從而更容易同時更改多個樣式。

LESS 也允許使用變數,但它們在定義它們的塊中是區域性的。

混合

SASS 支援混合,這是一種可重用的程式碼塊,可以在整個程式碼庫中的多個位置包含,從而實現更有效和模組化的編碼。

LESS 也支援混合,但不如 SASS 靈活,因為它們只能定義固定數量的引數。

繼承

SASS 允許繼承,建立分層樣式結構並減少對冗餘程式碼的需求。

SASS 允許繼承,建立分層樣式結構並減少對冗餘程式碼的需求。

效能

SASS 通常比 LESS 快且更輕量級,因為它可以更有效地編譯程式碼,並且包含更少的內建函式和功能。

LESS 可能比 SASS 慢且更佔用資源,尤其是在編譯大型程式碼庫或使用複雜功能時。

社群支援和流行度

SASS 擁有更大的社群和更廣泛的追隨者,這使得更容易找到解決方案和資源。

與 SASS 相比,LESS 的社群較小。

示例:LESS

在此示例中,我們將使用 LESS 為一個簡單的網頁設定樣式。

首先,建立一個包含標題、主要部分和頁尾的 HTML 檔案。接下來,我們將建立一個名為“style.less”的 LESS 檔案,併為 HTML 元素定義一些樣式。

最後,當我們在 Web 瀏覽器中開啟 HTML 檔案時,LESS 將把我們的“style.less”檔案編譯成 CSS,並將樣式應用於 HTML 元素。

使用者可以在結果中看到標題的背景顏色為青綠色,文字為白色,主要部分的填充為 20px,頁尾的背景顏色為深色,連結的顏色與標題相同。

index.html

<html>
<head>
   <title>My Website</title>
   <link rel="stylesheet/less" type="text/css" href="style.less">
   <style>
      @primary-color: #008080;
      header {
         background-color: @primary-color;
         color: #fff;
         padding: 20px;    
         h1 {
            font-size: 36px;
            margin: 0;
         }
      }
      main {
         padding: 20px; 
         p {
            line-height: 1.5;
         }
      }
      footer {
         background-color: #333;
         color: #fff;
         padding: 20px;    
         p {
            margin: 0;
         }    
         .link {
            color: @primary-color;
            text-decoration: none;        
            &:hover {
               text-decoration: underline;
            }
         }
      }
   </style>
   <script src="//cdnjs.cloudflare.com/ajax/libs/less.js/3.9.0/less.min.js"></script>
</head>
<body>
   <header>
      <h1> Welcome to My Website </h1>
   </header>
   <main>
      <p> This is the main content of the page .</p>
      <p> Here is another paragraph. </p>
   </main>
   <footer>
      <p> © 2023 My Website </p>
   </footer>
</body>
</html>

輸出

示例:SASS

在此示例中,我們將使用 SASS 建立一個簡單的卡片元件。

首先,我們在 SASS 檔案的頂部定義我們的變數。定義背景顏色和字型顏色變數,這些變數在整個元件中使用。

接下來,我們為 box-shadow 屬性定義混合。這將使我們能夠輕鬆地將相同的 box-shadow 應用於元件中的多個元素。

然後,我們使用建立的變數和混合定義卡片元件樣式。

最後,我們在 HTML 中使用卡片類來應用在 SASS 檔案中定義的樣式。

index.html

<html>
   <head>
      <title>SASS Example</title>
      <style>

         // Define variables
         $bg-color: #f6fff2;
         $font-color: #004d9e;
         
         // Define mixin for box-shadow property
         @mixin box-shadow($shadow) {
            -webkit-box-shadow: $shadow;
            -moz-box-shadow: $shadow;
            box-shadow: $shadow;
         }
         
         // Define body style
         body{
            background-color: $bg-color;
            color: $font-color;
            font-family: 'Roboto', sans-serif;
            text-align: center;

         }
         
         // Define card component style
         .card {
            background-color: $bg-color;
            color: $font-color;
            width: 50%;
            margin: 0 auto;
            text-align: center;
            padding: 20px;
            border-radius: 5px;
            
            // Nesting to make the code more readable
            h3 {
               margin-bottom: 10px;
            }
            p {
               font-size: 16px;
            }

            // Use mixin for box-shadow property
            @include box-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
         }
      </style>
   </head>
   <body>
      <header>
         <h3> Example Using SASS </h3>
         <div class = "card">
            <h3> Card Heading </h3>
            <p> Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ea, corporis. </p>
         </div>
      </header>     
   </body>
</html>

輸出

結論

Sass 和 LESS 都是強大的 CSS 開發工具,它們的選擇將取決於個人的需求和偏好。Sass 提供了一套更強大的功能,並且擁有更大的社群,而 LESS 具有更好的瀏覽器支援,並且通常速度更快。最終,預處理器 Sass 和 LESS 簡化了現代 Web 應用程式的 CSS 程式碼編寫和維護。

更新於: 2023 年 5 月 11 日

679 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告