このチャプターでは、Sassで使用されるミックスインと継承について解説します。
「CSSを効率的に書く!Sassの入門講座」の第8章です。この講座については以下から確認できます。
ミックスインの基本 – @mixin
ミックスインとは、Sassで複数のセレクタに対して同じスタイルを適用するための仕組みです。
@mixin
を使用することで、複数のスタイルをまとめることができます。@mixin
を使用すると、定義したスタイルを呼び出すことができます。
使用方法は、@mixin
を記述した後に、作成したいスタイルを記述します。
@mixin スタイル名(引数) {
スタイル定義
}
また、引数が必要な場合には引数を設定することもできます。
@mixin スタイル名($引数) {
スタイル定義
}
次に、@include
を使用して、そのスタイルを適用するセレクタを指定して呼び出します。
.クラス名 {
@include スタイル名;
}
以下は、@mixin
の定義と呼び出しをしているサンプルです。
@mixin font-size {
font-size: 16px;
}
.class1 {
@include font-size;
}
上記のサンプルでは、@mixin
でfont-sizeを定義し、.class1で@include
を使用して呼び出しています。
継承の基本 – @extend
継承とは、Sassで既存のセレクタのスタイルを拡張するための仕組みです。
@extend
を使用することで、既存のクラスのスタイルを継承することができます。@extend
を使用することで、既存のクラスのスタイルを継承し、新しいクラスを作成することができます。
//使用方法
.既存クラス {
スタイル定義
}
.新しいクラス {
@extend .既存クラス;
}
以下は、継承を行う例です。
.button {
font-size: 16px;
padding: 8px;
border-radius: 4px;
}
.primary-button {
@extend .button;
background-color: blue;
color: white;
}
上記のサンプルでは、.primary-buttonセレクターは.buttonセレクターを継承しています。
そのため、.primary-buttonセレクターは.buttonセレクターのfont-size
、padding
、border-radius
のスタイルを引き継ぎます。また、.primary-buttonセレクターにはbackground-color
、color
のスタイルも追加で定義されています。
継承を行うことで、同じようなスタイルを持つセレクターのスタイルを1か所で定義することができ、スタイルの記述量を減らすことができます。
解いてみよう!小テスト:本章の復習
ミックススインと継承について復習しましょう。
問1. 「@mixin」を使った処理で、「マウスポインターが当たると背景色が青色に変わる」という処理を行いたい場合、どのように書くことができるでしょうか?
- @mixin blue-bg-hover { &:hover { background-color: blue;} }
- @mixin:hover { background-color: blue; }
- @mixin { background-color: blue; }:hover
解答
答え:① @mixin blue-bg-hover { &:hover { background-color: blue;} }
例:.fooと.barの要素に対して、マウスポインターが当たると背景色が青色に変わるようになります。
@mixin blue-bg-hover {
&:hover {
background-color: blue;
}
}
.foo {
@include blue-bg-hover;
}
.bar {
@include blue-bg-hover;
}
問2. 「@extend」を使った処理で、「セレクタfooを拡張して、barを継承する」という処理を行いたい場合、どのように書くことができるでしょうか?
- @extend .foo; .bar { @extend .foo; }
- .bar { @extend .foo; }
- @extend .foo { .bar { @extend .foo; } }
解答
答え:② .bar { @extend .foo; }
例:.barは.fooのスタイルを継承しているため、colorプロパティはred、font-sizeプロパティは16pxが適用されると同時に、追加でfont-weightプロパティがboldに設定されます。
.foo {
color: red;
font-size: 16px;
}
.bar {
@extend .foo;
font-weight: bold;
}
これらを実際に実装したサンプルはダウンロード教材のchapter08フォルダで確認できます。
リスキリングでキャリアアップしてみませんか?
リスキリング(学び直し)は、経済産業省が推奨しており、
今だけ、最大70%のキャッシュバックを受けることができます。
最大70%の給付金が出るおすすめのプログラミングスクール!
国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!
興味のある方はすぐに確認しましょう。
チャプター8 「ミックススインと継承を理解する」のまとめ
チャプター8では、Sassで使用される2つの重要な機能、ミックスインと継承についてについて学びました。
@mixin
を使用することで、スタイルをグループ化し、複数のセレクターで使用できるようにすることができます。@mixin
を定義するには、@mixin
を使用し、定義したいスタイルを指定します。
その後、@include
を使用して、@mixin
を実際に適用することができます。@extend
を使用することで、セレクターに既存のスタイルを継承させることができます。@extend
を使用するには、@extend
を使用し、継承させたいスタイルを指定します。同じスタイルを複数のセレクターで使用することができるため、スタイルシートをよりスッキリさせることができます。
これらの技術を理解することで、Sassをよりスマートに使用することができるようになります。
さいごに
大変おつかれさまでした!これでSassのコースは終了になります。いかがだったでしょうか?
一度に全てを覚える必要はないので、必要に応じて必要な情報を確認しながら開発を進めることで自然と技術が身につきます。
もし難しいところがあったりだとか、理解ができないといった場合には繰り返し確認して身につけて見て下さい。
コメント