亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

Sass 輸出格式

1. 簡介

在 Sass 中有 4 種輸出格式,它們分別是嵌套格式、展開格式、緊湊格式和壓縮格式;本節內容我們將講解這四種輸出格式的區別以及設置他們的方法。

2. 什么是 Sass 輸出格式

不同的編碼語言都有不同的格式,比如縮進、換行、空格等等,Sass 輸出格式指的就是轉換為 CSS 代碼的格式。

3. 四種輸出格式

3.1 嵌套格式(:nested)

嵌套格式是 Sass 中的默認輸出格式,這種格式選擇器和屬性都會獨占一行,能更好的反應出 HTML 元素和樣式的關系,同時縮進也會與 Sass 中的縮進保持一致,一般來說這種格式使得我們的樣式結構更清晰、更易讀。我們舉例看下這種格式:

.box {
	width: 100px; }
.box2 {
	width: 200px;
	height: 100px;  }
	.box2 p {
		color: red; }

3.2 展開格式(:expanded)

展開格式就像我們平時手寫 CSS 的格式一樣,屬性、選擇器都會獨占一行,屬性會縮進,選擇器不會縮進而是頂頭的,前面章節中我們演示的例子轉為的 CSS 代碼就都是展開格式的,我們舉個例子看下這種格式:

.box {
  width: 100px;
}
.box2 {
  width: 200px;
  height: 100px;
}
.box2 p {
  color: red;
}
.box2 .main {
  width: 100%;
  heigth: auto;
}

從上面的代碼就可以看出來,這種格式的縮進、換行等其實和我們平時項目中寫的 CSS 的格式是一樣的。

3.3 緊湊格式(:compact)

看名字就知道,這種格式占用的空間肯定是小的,每個選擇器和其 CSS 樣式只占用一行,而且嵌套的選擇器之間沒用空行,只有不嵌套的選擇器之間才會有空行,空行的意思其實就是分隔符,我們舉例看下這種格式:

.box { width: 100px; }

.box2 { width: 200px; height: 100px; }
.box2 p { color: red; }
.box2 .main { width: 100%;heigth: auto; }

從上面可以看出這種格式轉換的 CSS 的代碼更為緊湊,占據的空間更小,不過當內容多了后讀起來可能不是很方便。

3.4 壓縮格式(:compressed)

通過字面意思看,這種格式是將生成的 CSS 代碼直接壓縮,刪除所有無意義的空行、換行、空格以及注釋,從而將生成的代碼體積盡量壓縮至最小,在壓縮的同時會對生成的代碼進行一些調整將體積壓縮至更小,我們舉個例子看下壓縮后的 CSS 代碼:

.box{width:100px;}.box2{width:200px;height:100px;}.box2 p{color:red;}.box2 .main{width:100%;heigth:auto;}

上面這種壓縮后的代碼我們基本是沒法看和更改的,所以這種格式一般用于生產環境,也就是上線的時候會調整為這種格式來輸出。

4. 輸出格式的設置

上面我們講了 4 中輸出格式,接下來我們講解如何在 Sass 中設置不同的輸出格式,我們可以通過在命令行中編寫如下的命令來設置不同的輸出格式:

// 設置為嵌套格式
$ sass --style=nested style.scss a.scss
// 設置為展開格式
$ sass --style=expanded style.scss a.scss
// 設置為緊湊格式
$ sass --style=compact style.scss a.scss
// 設置為壓縮格式
$ sass --style=compressed style.scss a.scss

上面是在命令行設置輸出格式,但我們一般都是在前端項目里使用 Sass 的,很少直接在命令行使用,那該怎么設置呢?我們一般都會安裝 node-sass 這個依賴包,node-sass 的設置選項中有一個 outputStyle 可以用于設置輸出格式,示例如下:

var sass = require('node-sass');
sass.render({
  file: '/path/to/myFile.scss',
  includePaths: [ 'lib/', 'mod/' ],
  // 設置輸出格式
  outputStyle: 'compressed'
}, function(error, result) {
    console.log(error.status);
  }
});

在前端的項目中我們一般會使用 webpack 作為構建工具,所以我們可以在 sass-loader 中來設置 sass 的輸出格式,示例如下:

// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /\.s[ac]ss$/i,
        use: [
          'style-loader',
          'css-loader',
          {
            loader: 'sass-loader',
            options: {
              sourceMap: true,
              sassOptions: {
                outputStyle: 'compressed'
              },
            },
          },
        ],
      },
    ],
  },
};

目前大多數的前端項目使用 Sass 的話都會使用 sass-loader 這個依賴包,所以我們可以在 sass-loader 的配置項中根據不同的環境來作區分,來動態的設置輸出格式。

5. 小結

本節內容我們講解了 Sass 的輸出格式,這是為了讓你對 Sass 有一個更全面的了解,這個在項目中并不是很常用,而且在一個前端項目中輸出格式的設置一般為一次性的工作,基本都是由整個項目的前端負責人或架構師來完成。

不過你還是要了解這四種輸出格式:嵌套格式、展開格式、緊湊格式和壓縮格式之間的區別。尤其是壓縮格式,它基本都是在線上環境(生產環境)中使用的,因為我們線上的樣式文件體積是越小越好,越有利于用戶體驗!最后請你根據下面這張圖來回憶一下本節講的四種輸出格式:
圖片描述