Sass @import と Partials

Sass は CSS コードを乾燥させることができます(DRY、Don't Repeat Yourself、自己を繰り返さない)。

DRY コードを書く方法の一つは、関連するコードを別のファイルに保存することです。

CSS スパンを用いて小さなファイルを作成し、他の Sass ファイルに含めることができます。例えば、このようなファイルは:リセットファイル、変数、色、フォントなどです。

Sass ファイルのインポート

CSS と同様に、Sass も @import 指示。

@import 指示で、1つのファイルの内容を別のファイルに含めることができます。

パフォーマンス問題により、CSS @import 指示には大きな欠点があります;それを呼び出すたびに追加の HTTP リクエストが作成されます。しかし、Sass @import 指示でファイルを CSS に含めます;したがって、実行時に追加の HTTP クリエイトが必要ありません!

Sass インポート语法:

@import filename;

ヒント:ファイルの拡張子を指定する必要はありません。Sass は自動的に .sass や .scss ファイルと仮定します。CSS ファイルもインポートできます。@import 指示でファイルをインポートし、メインファイルでインポートされたファイルで定義された任意の変数やミックスインを使用できます。

メインファイルに任意の数のファイルをインポートできます:

@import "variables";
@import "colors";
@import "reset";

例を考えてみましょう:仮に「reset.scss」という名前のリセットファイルがあり、以下のように見えます:

SCSS 语法 (reset.scss):

html,
body,
ul,
ol {
  margin: 0;
  padding: 0;
}

今度は「reset.scss」ファイルを「standard.scss」という別のファイルにインポートします。

私たちは以下のように行います:一般的にはファイルの上部に追加 @import 指示;その内容は全体的な範囲を持つことになります:

SCSS 语法 (standard.scss):

@import "reset";
body {
  font-family: Helvetica, sans-serif;
  font-size: 18px;
  color: red;
}

したがって、「standard.css」ファイルが転換された場合、CSS は以下のようになります:

CSS 出力:

html, body, ul, ol {
  margin: 0;
  padding: 0;
}
body {
  font-family: Helvetica, sans-serif;
  font-size: 18px;
  color: red;
}

Sass Partials(局部的なファイル)

デフォルトでは、Sass は直接 .scss ファイルを転換します。しかし、ファイルをインポートする際には、ファイルが直接転換される必要はありません。

Sassにはメカニズムがあり、ファイル名がアンダースコアで始まる場合、Sassはそれを翻訳しません。このように名付けられたファイルはSassでpartialと呼ばれます。

したがって、partial Sass ファイルは先頭のアンダースコアで名付けられます:

Sass Partial 语法:

_filename;

以下は、名前が「_colors.scss」の partial Sass ファイルの例です。(このファイルは直接「colors.css」に変換されません):

"_colors.scss":

$myPink: #EE82EE;
$myBlue: #4169E1;
$myGreen: #8FBC8F;

今、この partial ファイルをインポートするときは、アンダースコアを省略してください。Sassの理解では、ファイル「_colors.scss」をインポートすることになります:

@import "colors";
body {
  font-family: Helvetica, sans-serif;
  font-size: 18px;
  color: $myBlue;
}