ドットインストールのSass/SCSS入門を視聴して書いたメモです。

&はその親要素のセレクタを表す

ex)

a {
	text-decoration: none;
	&:hover: {
		font-weight: bold;
		}
}
変数

使えるデータ型:数値、文字列、真偽、色、リスト

    • *の演算ができる

ex)

$baseFontSize: 14px;
$imgDir: “../images/“;
$brandColor: rgba(255, 0, 0, 0.9);

#main {
	width: 90%;
	background: url($imgDir + “bg.png”);
	// background: url(“#{$imgDir}bg.png”); でも可

	p {
		color: $brandColor;
		font-size: $baseFontSize;
		.sub {
			font-size: $baseFontSize - 2px;
		}
	}
}
関数

sassが予め用意している便利な関数 一覧: http://sass-lang.com/documentation/Sass/Script/Functions.html

条件分岐

if,for while(調べて)

ファイルの分離

同一ディレクトリ内に_hoge.scssなどのようにして管理できる。main.scssで読み込むときは

@import “hoge”;

と記述する。

mixin

複数の設定をまとめて管理したいとき使う。@mixinで定義、@includeで呼び出す。

ex)

@mixin round {
	border-radius: 4px;
}

.label {
	font-size: 12px;
	@include round;
}

mixingは引数を持つこともできるし引数は初期値を持つこともできる。

extend

多くの共通する設定をもつ場合extendを使って継承すると便利

ex)

// extendを使わない場合
// background以外は共通している

.errorMsg {
	font-size: 12px;
	font-weight: bold;
	padding: 2px 4px;
	color:white;
	background: red;
}

.warningMsg {
	font-size: 12px;
	font-weight: bold;
	padding: 2px 4px;
	color:white;
	background: orange;
}

// extendを使った場合

%msg {
	font-size: 12px;
	font-weight: bold;
	padding: 2px 4px;
	color:white;
}

.errorMsg {
	@extend %msg;
	background: red;
}

.warningMsg {
	@extend %msg;
	background: orange;
}

注:%はplaceholder selector、詳しくは「Sass 3.2 からは placeholder selector を使おう - https://goo.gl/YOFcyI」

誤解してそうな気もするので何かあったら教えてください。