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

4-5 関数 を使って様々な処理を実行する

数値の絶対値を取得する abs()

$margin: -15px;

section {
	margin-left: $margin;
	.item {
		float: left;
		width: 200px;
		margin-left: abs($margin);
	}
}
section {
  margin-left: -15px;
}
section .item {
  float: left;
  width: 200px;
  margin-left: 15px;
}

数値の小数点以下を四捨五入する round()

$width: 100%;

.boxA {
	width: $width / 6;
}
.boxB {
	width: round($width / 6);
}
.boxA {
  width: 16.66667%;
}
.boxB {
  width: 17%;
}

数値の小数点以下を切り上げる ceil()

$width: 100%;

.boxA {
	width: $width / 3;
}
.boxB {
	width: ceil($width / 3);
}
.boxA {
  width: 33.33333%;
}
.boxB {
  width: 34%;
}

数値の小数点以下を切り捨てる floor()

$width: 100%;

.boxA {
	width: $width / 6;
}
.boxB {
	width: floor($width / 6);
}
.boxA {
  width: 16.66667%;
}
.boxB {
  width: 16%;
}

16進数のRGB値に透明度を指定して、RGBA形式に変換できる rgba()

body {
	background: rgba(#6a5468, 0.3);
}
body {
  background: rgba(106, 84, 104, 0.3);
}
.box {
	background: rgba(red, .15);
}
.box {
  background: rgba(255, 0, 0, 0.15);
}

明るい色をカンタンに作れる lighten()

body {
	background: lighten(#000, 30%);
}
body {
  background: #4d4d4d;
}

暗い色をカンタンに作れる darken()

body {
	background: darken(#fff, 20%);
}
body {
  background: #cccccc;
}
$c: #888;

.boxA {
	background: lighten($c, 20%);
}
.boxB {
	background: darken($c, 20%);
}
.boxA {
  background: #cccccc;
}
.boxB {
  background: #666666;
}

2つのカラーコードの中間色を作れる mix()

body {
	background: mix(#000, #fff, 50%);
}
body {
  background: #7f7f7f;
}
body {
	background: mix(rgba(000, 000, 000, .3), #fff, 50%);
}
body {
  background: rgba(216, 216, 216, 0.65);
}
$a: #000;
$b: #fff;

.boxA {
	background: mix($a, $b, 70%);
}
.boxB {
	background: mix($a, $b, 30%);
}
.boxA {
  background: #4c4c4c;
}
.boxB {
  background: #b2b2b2;
}