こんにちは、Hikaruです。
現在デイトラで月5万円稼ぐために勉強中です。
デイトラ初級編ではSass(scss)の講座に入りました。
CSSは平面にベターっと並ぶことが一般的であり、数千、数万行になると、どこに何が書かれているのか把握することが非常に困難で、保守性や可読性が低下しやすくなります。後から修正しようと思ったときには、必ず修正漏れが生じ、予測不可能な動作が発生する可能性が高まります。
Sass(SCSS)を使用することで、このような問題に対処できます。以下は、Sassが提供する特長によってCSSの管理性が向上する点です。
Sassでは、セレクタを入れ子に記述することができます。これにより、親子関係や階層構造が直感的に表現できます。
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
li {
display: inline-block;
a {
text-decoration: none;
}
}
}
}
.button {
background-color: #3498db;
color: #ffffff;
&:hover {
background-color: darken(#3498db, 10%);
}
}
.button {
background-color: #3498db;
color: #ffffff;
&:hover {
background-color: darken(#3498db, 10%);
}
}
変数を使ってカラーコード、文字サイズ、フォントファミリーなどを一元管理することは、後からの修正を簡単にし、保守性を向上させます。以下は、変数を活用したスタイルの一元管理の具体的な例です。
変数の宣言:
1.Sassでは、変数を$
を使って宣言します。
$primary-color
という変数にカラーコード#3498db
を格納しています。
$primary-color: #3498db;
2.
変数の使用:
宣言した変数は、後で他のプロパティやセレクタで使用できます。
$primary-color
変数の値がbody
要素の背景色に使用されています。
body {
background-color: $primary-color;
}
3.
変数の再代入:
変数の値は後で再代入できます。これは、デザインの変更やテーマの変更に便利です。
$primary-color: #3498db;
body {
background-color: $primary-color;
}
// 別のセクションで変数を再代入
$primary-color: #e74c3c;
header {
background-color: $primary-color;
}
SassのMixinは、再利用可能なスタイルのセットを定義するための機能です。Mixinを使うことで、同じスタイルを複数の場所で使い回すことができ、コードの冗長性を減少させます。以下は、SassのMixinの基本的な使い方です。
Mixinの定義:
1.Mixinは@mixin
キーワードを使って定義されます。
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
-ms-border-radius: $radius;
border-radius: $radius;
}
上記の例では、border-radius
というMixinが定義されています。このMixinは引数 $radius
を受け取り、それに基づいてベンダープレフィックスつきの border-radius
を生成します。
2.Mixinの適用:
Mixinを使うには、@include
ディレクティブを使います。
button {
@include border-radius(5px);
background-color: #3498db;
color: #ffffff;
}
上記の例では、button
要素にborder-radius
Mixinを適用しています。Mixin内のコードがその場所に展開され、Mixinで定義したスタイルがbutton
に適用されます。
3.デフォルト引数:
Mixinにデフォルトの引数を設定することも可能です。
@mixin box-shadow($x: 0, $y: 0, $blur: 5px, $color: #000) {
box-shadow: $x $y $blur $color;
}
上記の例では、box-shadow
Mixinが、$x
、$y
、$blur
、$color
の4つの引数を受け取りますが、デフォルトの値が設定されています。これにより、引数が指定されない場合はデフォルトの値が使われます。
.box {
@include box-shadow(2px, 2px);
background-color: #3498db;
}
上記の例では、box-shadow
Mixinに$x
と$y
だけが指定され、他の引数はデフォルトの値が使われます。
Mixinを使用することで、一般的なスタイルの再利用が容易になり、コードの保守性が向上します。