4.Front End Development_CSS - YukaKoshiba/MyknowledgeDocs GitHub Wiki
Front End Development_CSS @Japanese Version
Create Date:2024/11/01
Last Update Date:2025/04/07
基本の書き方 用語 各要素の指定方法 @media コメント スタイルの優先順位変更 CSSグローバル変数(:root)
グラデーションを付ける
画像
ぼかし/色変化を加える
影を付ける
回転/拡大縮小/傾斜/移動
箇条書き
ナビゲーションメニューのリンク(=アンカーリンク)
文字列の前後に文字を挿入する
レイアウト崩れを防ぐ スクロールの挙動を変更する スクリーンリーダー アニメーションを作成する
Sass
変数宣言と利用・
基本構文・
入れ子表現・
mixin
スタイルの継承・
他のSassファイルのスタイルをインポート
Cading Style Sheetsの略で、Webページ(HTML/XML)のレイアウトを整えるためのコンピュータ言語
※変数や関数を持たないため、CSSは言語であるが、プログラミング言語ではない
W3C(World Wide Web Consortiumは、ウェブ技術の標準化を推進する国際的な非営利団体で、jigsaw.w3.org/css-validator/を使用する事で、
ウェブページのCSSコードが、W3Cの標準仕様に準拠しているかどうか確認できる
この他、HTMLやXHTMLに関しても、W3Cのサイトで確認出来る(validator.w3.org)
キーと値のペアを含むプロパティで記述する
対象要素 または .class名 または #id名{
property: value;
property: value;
}
- CSS疑似要素(CSS preundo-elements)
HTMLに存在しない要素をあたかも存在するかのように扱うための仕組み
HTMLの構造を直接変更せせず、デザインの幅を広げられる
::before, CSS疑似::after,::first-lineなど - CSS疑似クラス(CSS preundo-class)
要素が特定の状態にあるときにスタイルを適用するための仕組み
:hover,:active,:focusなど
| 要素 | 対象範囲 |
|---|---|
| * | 全ての要素(ユニバーサルセレクタ) |
| *, "::before", "::after" | 全要素とその前後の要素(疑似セレクタ) |
| 要素1, 要素2, 要素3, … 例) menu, h1, h2 |
複数要素を指定 例)menu, h1, h2の複数選択 |
| 要素[class/idなど = "値"] 例1) div[class = "name"] 例2) input[type="submit"] |
対象要素中で、指定した値と完全一致するもの 例1)div要素で.nameと完全一致するもの 例2)input要素でtypeがsubmitのもの |
| 要素[class/id ~= "値"] 例) div[class ~= "name"] |
対象要素中で、class/id名が部分一致するもの 例)div要素で.nameと部分一致するもの |
| 要素 class/id名 例) div .name |
対象要素の子要素で、class/id名のもの 例)div要素の子要素で、.nameである要素 |
| 要素 > class/id名 例) div > .name |
対象要素の直下の子要素がclass/id名のもの 例)div要素の.nameである直下の子要素 |
| 要素:not(class/id名など) 例) div:not(#name) |
対象要素の内、指定したもの以外全て 例)div要素の#name以外の全要素 |
| 要素:first/last-of-type | 対象要素の最初/最後だけ |
| 要素:nth-of-type(番号) | 対象要素の指定した番号の要素 |
| 対象要素:hovor 例) a:hovor |
マウスカーソルが対象要素上に来た時 例)リンク上にマウスカーソルを当てた時 |
| 対象要素:action 例) a:active |
対象要素を実際にクリックした際 例)リンクをクリックした際 |
| 対象要素:visited 例) a:visited |
ユーザが訪問した際 例)ユーザがリンクを訪問した際 |
ユーザ環境(端末やカラー反転,スクロール設定等)に応じて、柔軟なCSSを適用する
/* 滑らかな動きを好むユーザのみ適用する */
@media (prefers-reduced-motion: no-preference) {
* {
scroll-behavior: smooth;
}
/* スマートフォン以下のサイズに対しして指定 */
@media (max-width: 480px) {
nav ul {
display: none;
}
}
/* タブレット以上のサイズ */
@media (min-width: 768px) {
.container {
width: 70%;
}
}
/* 縦向き(portrait)/横向き(landscape)で表示を変更する */
@media (orientation: landscape) {
.image {
width: 100%;
}
}
/* モバイル端末(handheld)以外 */
@media (not handheld) {
.sidebar {
width: 20%;
}
}
/* ダークモードを選択しているユーザに対する処理 */
@media (prefers-color-scheme: dark) {
html {
class: "dark-mode";
}
}
/* コメントしたいもの */意図しないスタイルのオーバーライドを防いだり、緊急時の修正時に、特定にスタイルの優先度を極端に高めたい時に、!importantを記述する
.example {
color: red !important;
}
疑似クラスの1つである:rootを利用する
繰り返し使用されるプロパティ値をカスタムプロパティとして設定でき、重複した記述が楽になる
また何度も直接プロパティ値を指定しないことで、レイアウトの統一性を担保することに繋がる
作成したカスタムプロパティはvar()を使用して、利用できる
:root {
--background-color: #f0f0f0;
--font-color: #000000:
}
/* 作成したカスタムプロパティを利用する */
main {
backfround-color: var(--background-color);
color: var(----font-color);
}
background-color: red; /* 色の名前で指定 */
background-color: rgb(255, 0, 0); /* rbg関数で指定 */
background-color: #00FF00; /* 16進数/16進数値で指定 */
background-color: hsl(240, 100%, 50%); /* hsl関数で指定 */
background-color: rgbs(0, 255, 255, 50%); /* rbg関数 + 不透明度 */
| 単位 | 説明 |
|---|---|
| % | 親要素のサイズに対する割合 親要素が16pxの時、100% → 16px, 50% → 8px |
| rem | ルート(htmlタグ)に指定した文字サイズを基準とした相対的なサイズ htmlを16pxと指定すると、1rem → 16px, 2rem → 32px |
| em | 親要素のサイズに対する割合 1em = 100%(親サイズと同じ) |
| px | pixelでサイズを指定する 固定値指定になる為、画面の解像度に依存する |
| vw | ビューポートの幅を基準とした相対的な長さの単位 ブラウザウィンドウの幅が変更されると、要素のサイズも連動して変化する ユーザーが利用している画面幅を100vwとする 5vw = ビューポート幅の5% |
| vh | viewport heigthの略 ビューポートの高さを基準とした相対的な長さの単位 ブラウザウィンドウの高さが変更されると、要素のサイズも連動して変化する ユーザーが利用している画面高さを100vhとする 5vh = ビューポート高さの5% |
| 関数 | 説明 | 使い方 |
|---|---|---|
| calc() | 他の値に基づき、計算する | padding: calc(1.25rem + 2px) ; |
| パラメータ | 設定内容 | 値 | 備考 |
|---|---|---|---|
| font | 一括文字設定 | 各種パラメータ値 | 順番に厳格な決まりはない font-style,font-weight,font-size,line-height,font-familyで書くことが多い |
| color | 文字の色 | キーワード/rgb/rgba/HEX値で指定 | |
| font-style | 文字のスタイル指定 | normal: 通常体 italic: 筆記体 oblique: 斜体 |
|
| font-size | 文字の大きさ | 数字 + 単位 | |
| font-weight | 文字の太さ | normal(初期値) bold 数値で指定(100-900) 100単位で指定でき、700以上でboldになる |
|
| font-family | 文字のフォント | sans-serif(ゴシック系) serif(明朝系) monospace(等幅フォント)など |
複数指定も可能 基本は1つ目のフォントを適用するが、ユーザにインストールされていない時は2つ目のフォントを適用する |
| text-decoration: none | 下線の設定 | none: 下線を消す underline: 下線を引く |
text-decoration: underline dotted red;と設すると、線の種類や色まで指定される |
| line-height | 行間 | 数値 + em/%/単位なしで指定/px フォントサイズ12pxの場合、1em/ 100%/ 1 → 12px |
|
| letter-spacing | 字間 | 数値 + em/(px:非推奨) 初期値はnormal(letter-spacing: 0;) |
|
| text-align | インライン要素(文字や画像)の水平方向配置 | left:開始を左に寄せる(start:初期値=left) center:開始を中央寄せ right:開始を右寄せ(end:終了側に寄せる=right) |
|
| text-transform | テキストの大文字表記を指定する | capitalize:各単語の最初の文字だけ大文字 uppercase:全て大文字 lowercase:全て小文字 など |
|
| text-indent | ブロック内のテキストの行の前に置く空白(字下げ)の幅を設定する | 値+単位(mm/px/%/em) キーワード値またはグローバル値 |
|
| white-space | ホワイトスペース(スペース/タブ/改行)の指定 | 参照 | |
| justify-content | 内容(文字)の配置を指定する |
borderプロパティを使用する
下記以外に枠線の上下左右の一部の線のみ指定をすることも可能
border-top/bottom/right/leftなど
| パラメータ | 設定内容 | 値 | 備考 |
|---|---|---|---|
| border-width | 枠線の太さ | 線を無し:noneまたは0 キーワードバリュー/グローバルバリューで指定 数字 + 単位(px/em/rem/単位無し) |
参考 |
| border-style | 線のスタイル | none, solid, dotted, dashed, double:など | 参考 |
| border-color | 線の色 | キーワード/rgb/rgba/HEX値で指定 | transparentを指定すると透明になる |
| border-radius | 角の丸み | 数値 + 単位(%/px) | 4つの角に違う値を指定可能 1つ: 全ての角 2つ: 左上/右下 左下/右上 3つ: 4つ:左上から時計回り |
| border | 上記一括設定 | 数値 + 単位(%/px) | 4つの角それぞれに違う値を指定することも可能 枠線を無くしたい時は、boder:0を指定 |
paddingやmarginは、上下左右の一部の線のみ指定をすることも可能
paddingまたはmargin-top/bottom/right/leftなど
| パラメータ | 設定内容 | 値 | 備考 |
|---|---|---|---|
| widthおよびheight | 要素の横幅と高さ | 数値 + 単位(%/vw/vh/px) | |
| padding | borderより内側の余白 | 数値 + 単位(%/vw/vh/px) 初期値はauto |
|
| margin | borderの外側の余白 | 数値 + 単位(%/vw/vh/px) | 複数設定可能 1つ:上下左右 2つ:上下/左右 3つ:上/左右/下 4つ:上から時計回り |
| overflow | 親要素からはみ出た子要素の処理 | visible:そのまま表示(初期値) scroll :はみ出た部分は非表示/スクロール可 hidden :はみ出た部分は非表示/スクロール不可 auto :必要に応じてscrollの動きをする |
|
| clip-path | 要素の表示領域を切り取る | 参照 | clipで指定すると短形のみ指定できる |
backgroundtプロパティで指定する
| パラメータ | 設定内容 | 値 | 備考 |
|---|---|---|---|
| background | 要素の背景に関する一括指定 | 背景色や画像など | 背景色は複数指定できる linear-gradient()によるグラデーション可能 |
| background-color | 要素の背景色 | キーワード/rgb/rgba/HEX値 | 一色しか指定できず、グラデーション不可 |
| background-image | 背景画像 | url(...パス.jepgなど) | |
| background-attachment | スクロール時の背景画像の表示方法 | キーワードバリューまたはグローバルバリューで指定 | |
| background-clip | 背景画像を表示する領域 | キーワードバリューまたはグローバルバリュー | |
| background-size | 背景画像を表示サイズ | キーワードバリューまたはグローバルバリュー または、数字 + 単位(%/em/px) |
|
| background-repeat | 背景画像の繰返し | キーワードバリューまたはグローバルバリュー | |
| background-repeat | 背景画像 | url(...パス.jepg) | |
| opacity | 背景色(background-color)の不透明度 | 0~1または0~100%で指定 |
| パラメータ | 設定内容 | 値 |
|---|---|---|
| float | 親要素内から浮かせ、テキスト/他要素を要素周囲に配置する | none: デフォルト left等指定すると、囲むように横並びになる |
| position | 文書内における要素の配置 | static:デフォルト relative: 通常の位置を基準にして配置 absolute: 特定の位置に固定 スクロールしても常に表示される fixed: 要素を固定的に配置 スクロールしても付いてこない sticky: スクロールや位置に応じrelativeとfixedを切替え static以外を指定した場合は、top/right/left/bottomの影響を受ける |
| flex-direction | フレックスコンテナ内の子要素の並び方を指定するCSSのプロパティ 子要素を横/縦並び、並び順を逆など、様々なレイアウトを柔軟に作成可能 |
|
| flex-wrap | アイテム折返しの設定 | wrap:アイテムを次の行/列に折り返す nowrap:アイテム折りしを防ぎ、必要に応じ縮小 *デフォルト |
| justify-content | フレックスコンテナ内の子要素の主軸方向の配置を調整 水平/垂直方向、親要素の左/中央/右に配置を選択できる |
|
| flex-direction | 指定した並び方向に対して垂直な方向のこと | row: 交差軸方向は垂直方向(上下) column: 交差軸方向は水平方向(左右) |
| gap | grid/flexboxを使用している際に、子要素間の隙間をまとめて指定可能 | 長さ(px/emなど), %で指定 |
| object-fit | 画像や動画などの置換要素(<img>や<video>)をその親要素内での表示を指定する 画像の縦横比を維持/特定の領域に収める際に利用する |
|
| z-index | 重なった要素の表示順指定 | 数値/グローバル値 |
| grid-template | 要素の配置を細かく制御する float/flexboxより、柔軟で直感的に複雑なレイアウトを構築可能 |
grid-template-columns等、外部サイト参照のこと |
| display | 要素の表示形式を決定 | none: あたかもページに存在しない様にブラウザ上に表示されない 他要素レイアウトに影響を与えないが、JavaScriptからアクセス可能 flex: コンテナ中に配置された子要素を自由に配置/伸縮できる |
CSSによる余白の調整には、
(1)margin-bottom (2)white-spaceでpreを指定する 2つの方法がある
(2)の方法は非推奨の為、(1)を使用する
linear-gradient機能を利用する
linear-gradient(gradientDirection, color1 color-stop, color2 color-stop, ...);
/* 左から右方向へ、赤から緑へグラデーションする */
background: linear-gradient(90deg, rgb(255, 0, 0),rgb(0, 255, 0));
/* 上から下へ赤から緑へグラデーションし、75%の位置まで赤色にする */
background: linear-gradient(180deg, rgb(255,0,0) 75%, rgb(0, 255, 0));
gradientDirection: グラデーションの方向(90deg:左→右 180deg:上→下 *デフォルト)
color-stop: グラデーションをどこの位置まで行うかを指定する(0%~100%)
グラデーションを繰り返したい場合は、repeating-linear-gradientを利用する
| パラメータ | 設定内容 | 値 | 備考 |
|---|---|---|---|
| width: max(固定幅, 相対) | 画像の最大サイズ | (例)max(250px, 25vw) | デフォルトでは、画像の元のサイズで表示される レスポンシブデザインにおいて要素の幅を柔軟に調整 |
| aspect-ratio | 幅と高さの比率を調整する | ・幅/高さ aspect-ratio: 35/4; ・数値(高さに対する幅) aspect-ratio: 0.5; |
レスポンシブルデザインに有効 |
filterを利用する
| 値 | 設定内容 |
|---|---|
| blur(ぼかし半径) | ガウスぼかし(ぼかし)を設定する ぼかし半径の単位はpx,rem等 |
| 明るさを指定する 1/100%:元の明るさ 2/200%:元の2倍の明るさ |
|
| contrast(%) | |
| grayscale(%) |
box-shadowを利用する
box-shadow: offsetX offsetY blurRadius spreadRadius color;
/* 右と上方向へ赤色で5pxの影を付ける */
box-shadow: 5px -5px 5px red;
/* 赤色で20pxの光彩を放つ */
box-shadow: 0 0 20px 0 red; /* 0は指定しなくても良い */
offsetX: + 右方向 - 左方向
offsetY: + 下方向 - 上方向
blurRadius: 過度の丸み(指定なし/0:四角 それ以外の値:丸みを帯びた角)
spreadRadius: 影の拡散の度合い(0/指定なし:元の影のサイズ 数字 + pxで拡散範囲を指定 + :外側 - :内側)
transformを利用する
| 値 | 設定内容 |
|---|---|
| transform-origin | 要素の座標変換(transform)の原点設定 値1つ:中央/下/左/右のいずれか 値2つ:中央/左/右 + 中央/下/上 値3つ:値2つの時 + Zオフセット |
| rotate(回転方向 数値deg) | 回転方向:-:半時計回り +:時計回り x/y/z:各軸方向 totate(ベクトルと角度値)で指定も可能 |
| skew(歪みの角度) | 各軸に適用されるゆがみの量を表す 1つ指定:x軸方向の歪み 2つ指定:x軸方向の歪み, y軸方向の歪み |
ビュレットを無くしたり、形状を変更することが出来る
nav > ul {
/* ビュレット(点)を無しにする :/
list-style: none;
}
色・配置調整
li > a {
/* アンカーリンクの文字色を親要素(リストアイテム)の文字色と同じにする */
color: inherit;
/* デフォルトで表示されるアンカーリンクの下線消す */
text-decoration: none;
/* はみ出防止 */
flex-wrap: wrap;
align-items: center;
padding-inline-start: 0;
margin-block: 0;
height: 100%;
}
ユーザがメニューの上にカーソルを当てた(ホバー)時に色を変える
nav > ul > li:hover {
background-color: #dfdfe2; /*背景色を変更*/
color: #1b1b32; /*文字色を変更*/
cursor: pointer; /*カーソルの形を手の形にする*/
}
メニューなど横並びにしたい時に使用する
ブロックレベル要素、インライン要素、フレックスアイテムなど、要素の表示形式を指定する
nav > ul
{
display: flex;
padding: 0;
}
/* 必要に応じてスペースを追加する */
/* <p>p内のすべてのテキストの前に★,後ろに!を追加する */
p::before {
content: "★ ";
}
p::after {
content: "!";
}
レスポンシブデザインなど、様々な画面サイズに対応する際、box-sizingプロパティを適切に設定することで、レイアウト崩れを防ぐことができる
/* すべての要素に対し、幅と高さをそのコンテンツの幅と高さに合わせる */
*{
box-sizing: content-box; */ 要素の幅や高さに、padding, borderのサイズは含まない */
box-sizing: border-box; */ 要素の幅や高さに、padding, borderのサイズは含める */
}
レスポンシブデザインなど、様々な画面サイズに対応する際、box-sizingプロパティを適切に設定することで、レイアウト崩れを防ぐことができる
scroll-behavior:smooth;
/* すべての要素に対し、幅と高さをそのコンテンツの幅と高さに合わせる */
.sr-only{
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
}
@keyframesを利用することで、CSSでアニメーションを作成できる
JavaScriptの様な複雑なアニメーションは作成できないが、
HTMLの構造を変える必要が無い為、パフォーマンス性が高い
JavaScriptのメインスレッドとは別に処理され、並列処理が可能
基本構文:@keyframes ルール名 { アニメーションの動きを指定 }
開始を0%(from)、終了を100%(to)とし、数値%でアニメーション途中の動作を指定できる
/* wheelというアニメーション名を作成 */
@keyframes wheel {
/* 360度回転させる */
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/* 作成したアニメーションを使用する */
対象要素 {
/* 適用するアニメーション */
animation-name: wheel;
/* アニメーション時間 */
animation-duration: 10s;
/* アニメーションの速度を指定 */
animation-timing-function: linear; /* 最初から最後まで同じ速度で進行する */
animation-timing-function: ease-in-out; /* 最初と最後だけアニメーションをゆっくりにする */
/* 無限にアニメーションを繰り返す */
animation-iteration-count: infinite;
}
/* 上記指定を1行にまとめる事が可能 */
.wheel {
animation: wheel 10s linear infinite;
}
レスポンシブルWebページやアプリケーションを作成するフロントエンドで利用されるCSSのフレームワーク
使用頻度の高い機能がまとめられており、見た目の良いWebサイトを短時間で開発できる
元々はTwitter社が開発をしており、Twitter Bootstrapと呼ばれていたが、
Twitterから独立してオープンソースとなり、Bootstrapへ名称が変更された
Official Web Site in English
公式サイト 日本語
Example
誕生の背景
・アプリの利用拡大で高速開発が求められるようになったこと
・PCではなく、モバイル端末に対応したれスポンジブルWebデザインが求められるようになった事
要素にBootstrapにあらかじめ用意されているclass名を指定することで、
CSSを自分で記載しなくても、レイアウトを整えることができる
=知識が無くても使う事が出来る
Sass変数を使用することで、Bootstrapのスタイルをカスタマイズできる
無料で使えるものから有料で使えるものまで、様々なテンプレートが用意されている
Bootstrapを導入するには、CDN(Content Delivery Network)を利用し、HTMLのタグでCSSファイルを指定する
-- HTML
<head>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
</head>
あらかじめ定義されたCSSクラスを書式に沿った<div>などのHTML要素に適用するだけで、スタイルがすぐに適用される
<footer>
<div class="text-bg-secondary p-3">Copyright © 2025 Yuka Koshiba</div>
</footer&ft
文字色
text-primary:プライマリーカラー(通常は青色)に変更する
text-secondary:セカンダリカラー(通常はグレー)
text-success:成功を表す色(通常は緑色)
text-danger:危険を表す色(通常は赤色)
text-warning:警告を表す色(通常は黄色)
text-info:情報表示の色(通常は青色系)
text-light:明るい色
text-dark:暗い色
文字の配置
text-center:中央揃えになる
オブジェクトの配置
row:Webページ内の要素を横方向に並べる
col-画面サイズ-カラム幅:row内に配置するカラムの幅を指定する
・画面サイズ別: sm, md, lg, xl
・カラム幅: 1~12の整数=画面のn分の1の幅を占める
<div class="row">
<div class="col-xs-6"></div>
<div class="col-xs-4"></div>
</div>
well:視覚的な奥行きを与える
btn:デフォルトのボタンスタイル
btn-default:btnクラスを拡張したもので、btnクラスと一緒に使うことで、ボタンに標準的な外観が設定できる
btn-primary: 主なアクションボタンに使用される、強調表示されたボタン
btn-secondary: 補助的なアクションボタンに使用されるボタン
btn-success: 成功を表すアクションボタンに使用されるボタン
btn-danger: 危険なアクションボタンに使用されるボタン
btn-warning: 注意が必要なアクションボタンに使用されるボタン
btn-info: 情報提示用のボタンに使用されるボタン
btn-light: 淡い色のボタン
btn-dark: 暗い色のボタン
CSSを拡張した言語
関数の再利用や、入れ子、条件分岐などを記述でき、通常のコードよりも可読性が向上する
VS Code, Code Penなど、開発環境によって、Sassのインポート方法が異なる
変数の宣言方法が通常のCSSとは異なり、$変数名:値;で宣言する
// 変数の宣言
$main-fonts: Arial, sans-serif;
$headings-color: green;
// 変数を利用して、対象要素のスタイルを変更する
h1 {
font-family: $main-fonts;
color: $headings-color;
}
入れ子でコードの可読性を向上できる
// 通常のCSS
article {
height: 200px;
}
article p {
color: white;
}
article ul {
color: blue;
}
// Saasの入れ子を使った場合
article {
height: 200px;
p {
color: white;
}
ul {
color: blue;
}
}
スタイル・シート全体で再利用できるCSS宣言のグループ
mixinの定義は@mixin + カスタム名で記述する
引数があれば指定をし、{ }内にスタイルの設定を記述する
mixinを適用するには@include カスタム名を記述する
// mixinの定義
@mixin reset-list($parm1, $parm2) {
margin: 0;
padding: 0;
list-style: none;
}
// mixinの適用
nav ul {
@include reset-list(10px, 10px);
}
// if文
@mixin border-stroke($val) {
@if $val == light {
border: 1px solid black;
}
@else if $val == medium {
border: 3px solid black;
}
@else if $val == heavy {
border: 6px solid black;
}
@else {
border: none;
}
}
// for文
@for $i from 1 through 12 {
.col-#{$i} { width: 100%/12 * $i; }
}
// for each文
@each $color in blue, red, green {
.#{$color}-text {color: $color;}
}
@extend + 継承先の要素名で、既に指定したスタイルを継承させることができる
// .info-importantに指定したスタイルを.infoへ継承する
.info-important {
background-color: magenta;
@extend .info;
}
コードの再利用やモジュラーかに役立つ機能
// 「_mixins.scss」というSaasファイルをインポートする
@import 'mixins'
mdn web docs
ProEngineer
W3CScholl