第4章 高度な機能を覚えてSassを使いこなそう

4-5 自作関数を定義する @function

オリジナル関数の例

@function halfSize($value) {
	@return $value / 2;
}
.boxA { 
	width: halfSize(100px); 
}
.boxA {
  width: 50px;
}

ネイティブ関数と組み合わせる

@function halfSize($value) {
	@return round($value / 2);
}

.boxA { 
	width: halfSize(105px); 
}
.boxA {
  width: 53px;
}

値を変数に入れる

$width:105px;

@function halfSize() {
	@return round($width / 2);
}

.boxA { 
	width: halfSize(); 
}

初期値の設定

$width:105px;

@function halfSize($value:$width) {
	@return round($value / 2);
}

.boxA { 
	width: halfSize(); 
}
.boxB { 
	width: halfSize(200px); 
}
.boxA {
  width: 53px;
}
.boxB {
  width: 100px;
}

グリッドレイアウトの幅を自動計算する関数

//全体の幅
$width: 960;

@function s-column($column) {
	@return round($width / $column)+px;
}

.boxA {
	width: s-column(4);
}
.boxA {
  width: 240px;
}
//全体の幅
$width: 960;

//デフォルトのカラム数
$column: 4;

@function s-column($value:$column) {
	@return round($width / $value)+px;
}

.boxA {
	width: s-column();
}
.boxB {
	width: s-column(6);
}
.boxA {
  width: 240px;
}

.boxB {
  width: 160px;
}