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

目次

CSS
基本の書き方  用語  各要素の指定方法  @media  コメント  スタイルの優先順位変更  CSSグローバル変数(:root)

カラーモデル  CSSでの単位  CSSで使用する関数

文字設定  要素の枠線  要素  背景  配置の調整  横並びにする

グラデーションを付ける  画像  ぼかし/色変化を加える  影を付ける  回転/拡大縮小/傾斜/移動

箇条書き  ナビゲーションメニューのリンク(=アンカーリンク)  文字列の前後に文字を挿入する

レイアウト崩れを防ぐ  スクロールの挙動を変更する  スクリーンリーダー  アニメーションを作成する

Bootstrap

Sass
変数宣言と利用基本構文入れ子表現mixin
スタイルの継承他のSassファイルのスタイルをインポート

CSS

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;
}
HTMLElementName

用語

  • 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
ユーザが訪問した際
例)ユーザがリンクを訪問した際

@media

ユーザ環境(端末やカラー反転,スクロール設定等)に応じて、柔軟な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;
}

CSSグローバル変数の設定

疑似クラスの1つである:rootを利用する
繰り返し使用されるプロパティ値をカスタムプロパティとして設定でき、重複した記述が楽になる
また何度も直接プロパティ値を指定しないことで、レイアウトの統一性を担保することに繋がる

作成したカスタムプロパティはvar()を使用して、利用できる


:root {
  --background-color: #f0f0f0;
  --font-color: #000000:
}
/* 作成したカスタムプロパティを利用する */
main {
  backfround-color: var(--background-color);
  color: var(----font-color);
}

カラーモデル

99.一般 -4.カラーモデル参照のこと

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関数 + 不透明度 */

CSSで使用する単位

単位 説明
% 親要素のサイズに対する割合
親要素が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%

CSSで使用する関数

関数 説明 使い方
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;
}

Bootstrap

レスポンシブルWebページやアプリケーションを作成するフロントエンドで利用されるCSSのフレームワーク
使用頻度の高い機能がまとめられており、見た目の良いWebサイトを短時間で開発できる

元々はTwitter社が開発をしており、Twitter Bootstrapと呼ばれていたが、
Twitterから独立してオープンソースとなり、Bootstrapへ名称が変更された

Official Web Site in English
公式サイト 日本語
Example

誕生の背景
・アプリの利用拡大で高速開発が求められるようになったこと
・PCではなく、モバイル端末に対応したれスポンジブルWebデザインが求められるようになった事

要素にBootstrapにあらかじめ用意されているclass名を指定することで、
CSSを自分で記載しなくても、レイアウトを整えることができる

=知識が無くても使う事が出来る

Sass変数を使用することで、Bootstrapのスタイルをカスタマイズできる

無料で使えるものから有料で使えるものまで、様々なテンプレートが用意されている

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>

Bootstrapの基本的な使い方

あらかじめ定義されたCSSクラスを書式に沿った<div>などのHTML要素に適用するだけで、スタイルがすぐに適用される


&ltfooter&gt
    &ltdiv class="text-bg-secondary p-3"&gtCopyright © 2025 Yuka Koshiba&lt/div&gt
&lt/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: 暗い色のボタン

Sass: Syntactically Awesome StyleSheets

CSSを拡張した言語
関数の再利用や、入れ子、条件分岐などを記述でき、通常のコードよりも可読性が向上する

使い方

VS Code, Code Penなど、開発環境によって、Sassのインポート方法が異なる

Code Penでインポートする方法

InportOfSass

変数の宣言

変数の宣言方法が通常の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;
  }
}

mixin

スタイル・シート全体で再利用できる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;
}

他のSassファイルからスタイルをインポートする

コードの再利用やモジュラーかに役立つ機能


// 「_mixins.scss」というSaasファイルをインポートする
@import 'mixins'

12.参考

GeeksforGeeks
mdn web docs
ProEngineer
W3CScholl
⚠️ **GitHub.com Fallback** ⚠️