スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

sassのインポート機能を活用してコードをファイル別に管理する

update : 2018/11/24

最近、sassにもだいぶ慣れてきました。
コード管理をスマートにしてくれるsassですが、コードが大量になると流石に煩雑になりがちです。
そこで、大量のソースを複数ファイルに分割してインポートしてみます。

例えばsassの変数をまとめたファイル「_values.scss」を用意します。
ファイル名の先頭にアンダースコアを入れたものをパーシャルファイルといいます。
パーシャルファイルはsassコマンドを実行してもコンパイルされず、「values.css」は生成されません。importされる専用の外部ファイルとして扱われます。

$color-link: #2266bb;
$font-size-l: 2.0rem;

その他に、reset.cssの内容をまとめたファイル「_reset.scss」。

a{
	color: $color-link;
}

モジュールをまとめたファイル「_modules.scss」などを用意します。

.module01{
	font-size: $font-size-l;
}


次に「style.scss」でこれらパーシャルファイルをインポートします。
importでパーシャルファイルのファイル名のアンダースコアと拡張子を省略して指定します。つまり「_values.scss」をインポートする場合は「@import “values”;」と書きます。
ここで、普段CSSで利用している「@import」とは意味が異なることに注意しましょう。

@charset "utf-8";
@import "values";
@import "reset";
@import "modules";
.leftbox{
	float: left;
}

これで準備は整いました。
「style.scss」をコンパイルして生成した「style.css」の中味は以下の通りです。

@charset "utf-8";
a{
	color: #2266bb;
}
.module01{
	font-size: 2.0rem;
}
.leftbox{
	float: left;
}

ちなみに、パーシャルファイルはフォルダ毎に管理して、階層指定でインポートすることもできます。

@charset "utf-8";
@import "../common/values";
@import "../common/reset";
@import "../common/modules";
.leftbox{
	float: left;
}

さらにimportするファイル内で、別ファイルをimportすることも可能です。

大量のCSSコードを要する大規模サイトでも、このようにimportを活用して整理できれば、コーディングのストレスも減らせそうですね。

B!

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives