CSS②

Contents

中央配置

◆横センタリング(左寄せ・中央寄せ・右寄せ)

〇インライン	親にtext-align (子孫に引継)。
〇ブロック margin ; 0 auto; (親がインライン時無効)
〇画像 親にtext-align 。

◆縦センタリング(上下中央寄せ・文字の縦中央寄せ)

〇親要素の中央に配置する(1行の場合)

・行の高さ(line-height)=ボックスの高さ(height)

〇absoluteとtransform: translate;を活用

親	position: relative;
子 position: absolute;
top: 50%;
transform: translateY( -50%);

◆ボックスの中心寄せ

〇display:absoluteとtransform
  親  position: relative;
  子  position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);

〇display:absoluteとmargin:auto
  親  position: relative;
  子  position: absolute;
 top: 0;
 right: 0;
 bottom: 0;
 left: 0;
 margin: auto;

〇display: flex;とjustify-contentとalign-items
  親  display: flex;
 justify-content: center;
 align-items: center;

〇display: flex;とmargin
  親 display: flex;
  子 margin: auto;

〇display: grid;とplace-items
  親 display: grid;
   place-items: center;

〇円の中心に文字を配置
  ・短い1行の文字
・line-heightとtext-align
  ・2行以上の文章
・position: absolute; とtransform : translate

枠線・画像・背景

◆枠線の設定(border)

〇書式

・border: 太さ 種類 色; 
・border-radius: 数値と単位;
・楕円 border-radius: 横の半径 / 縦の半径;
(↑上 右 下 左の順に指定)
{ border-radius: 10px 20px 30px 40px / 5px 10px 50px 100px; }

〇outline・outline-offset

・書式		outline : px 種類 色;
・outlineはborderのさらに外側の輪郭に線を引く。
・「outline-offset」はoutlineの内側に余白を設定。
・borderとoutlineの違い
a.outlineは要素の幅に影響を与えない
b.outlineは上下左右の指定はできない

〇border-collapse

・<table>で隣り合ったテーブルセルの間隔を指定。
・separate 初期値。ボーダーラインを離して表示。
・callapse ボーダーラインを重ね合わせて表示。

〇三角形

・幅広のborderを作り、要素の幅と高さを「0」指定。
・表示したい三角形以外の色を「transparent(透明)」に指定。

◆img要素(object-fit・aspect-ratio・filter)

〇imgの幅と高さ

・幅のみ指定 幅:指定幅、縦:アスペクト優先。
・縦のみ指定 縦:指定高さ、幅:アスペクト優先
・縦横を指定 比率を無視して指定の幅と高さ。
・親要素に「overflow ; hidden ;」を指定すると、画像の左上を起点にはみ出た部分がトリミング。

〇object-fit

・画像のアスペクト比を保ちつつトリミングが可能。
・必ず「width」と「height」の指定が必要。
・<video>でも使用可能。
・値
  ・fill 初期値。比率を無視して全体に表示。
  ・cover はみ出した部分をトリミング。
  ・contain 不足部分を余白表示。
  ・none 比率保持等倍表示。
はみ出し部分はトリミング、不足は余白。
  ・scale-down 比率保持等倍表示。
はみ出す場合は「contain」処理。
  ・unset 指定解除。
・トリミング位置の調整(object-position)
  ・初期値では、上下左右均等に中央トリミング。
  ・object-positionはトリミングの比率を指定。
{ object-position : 25% 75%; }  
・ぼかし画像(2枚重ね)

〇aspect-ratio

・アスペクト比を指定するプロパティ。
{ aspect-ratio: 幅 / 高さ;}

filter

 ◆種類
   ・blur ぼかし。px、em等。%は使用不可。
filter: blur(5px);
   ・brightness 明度。1が基準、0が暗い。
   ・contrast 1を基準に0が低コントラスト。
   ・drop-shadow x方向、y方向、ぼかし、色。
背景が透明画像の対象に影付与。
filter: drop-shadow(3px 3px 5px #000);
   ・grayscale 0を基準に1が最もグレースケール。
   ・hue-rotate 色相環の回転を適用。deg単位。
   ・invert 階調の反転。
   ・opacity 0が透明、1が不透明。
   ・saturate 彩度。1を基準に、0が低彩度。
   ・sepia セピア。0を基準に1がセピア調。
 ◆複数のフィルターの指定
   ・フィルターごとに半角Spaceで区切って指定。
   ・色合いを変更するフィルターを複数指定した場合、後に記述したものが適用される。

〇imgの下の隙間の対処(vertical-aline: top;)

・(https://html5experts.jp/takazudo/13464/)

〇テキストを円形に画像に回り込ませる(shape-outside: circle())

 1.<img>と<p>を<div>で囲む。
 2.<div>に「shape-outside: circle(); 」と「float: left;」を指定。

◆背景の色と画像の設定

〇背景色の指定(background-color)

・カラーネーム	・色の名前(140種類以上)。
・rgb ・rgb(rrr,ggg,bbb)の書式で赤・緑・青の強さを0~255までの10進数で指定。
・白はrgb(255,255,255)、黒はrgb(0,0,0)。
・rgba ・不透明度を指定するアルファ チャネル。
・alphaは、0.0(透明)から1.0(不透明)まで。
・カラーコード ・#rrggbbの書式で赤・緑・青の強さを00~ffの16進数で指定。

〇背景画像の指定と調整

 ◆background-image : url(画像のパス)
 ◆background-repeat
   ・repeat(初期値)
   ・repeat-x(水平繰返)
   ・repeat-y(垂直繰返)
   ・no-repeat(繰返無し)
 ◆background-position
   ・水平(left, center, right)と垂直(top, center,bottom)を半角スペースで区切って指定。
   ・要素の幅に対する割合で指定。(25% 50% ←要素の左から25%と上から50%の位置)。
 ◆background-size 
   ・contain 縦横小さい方に合わせて拡大縮小。
   ・cover 縦横大きい方に合わせて拡大縮小。
   ・% 要素の横幅に対する割合を%で指定。
 ◆background-attachment
   ・fixed ・ビューポートに対する相対位置で固定。
・iOSで動かない(?)。
   ・local ・要素内容に対する相対位置で固定。
・要素がスクロール機構を持つ場合、背景は要素内容とともにスクロール。
   ・scroll ・初期値。
・要素自身に対する相対位置で固定され、内容と共にスクロールしない。
 ◆background 
   ・まとめて指定。
   ・「background-size」は「background-position」の後に「/」が必要。
{ background: url( ../img/bg.jpg) no-repeat right top / 70vw auto; }

〇背景画像の重ね合わせ

 1.background-imageに2つの画像パスをカンマで区切って指定。先の記述が前面、後が後面。
 2.background-repeatに「no-repeat」を2つ、カンマで区切って指定。
 3.background-positionにそれぞれの位置をカンマで区切って指定。

〇色の重ね合わせ(buckground-blend-mode)

 ◆書式
   1.backgrouond-imageとbackgrouond-colorを記載。
   2.buckground-blend-modeと値を指定。
.bg { backgrouond-image : url(../images/bg.jpg) ;
   backgrouond-color : #0bd ;
   buckground-blend-mode : hard-light ; }
   ・グラデーションを重ねる際、backgrouond-imageで画像とグラデーションを「,」で区切って記載。
 ◆値
   ・multiply 乗算。
   ・overlay オーバーレイ。
   ・darken 暗く。
   ・lighten 明るく。
   ・hard-light ハードライト。
   ・soft-light ソフトライト。
   ・luminousity 輝度。
   ・その他

〇背景の傾斜

 ・transform : skewY(角度deg)
   1.疑似要素「::befor」に「content : ''」を作成。
   2.background-colorを指定。
   3.「position : absolute」指定。
   4.top、bottom、left、rightを全て「0」に指定。
   5.「transform: skewY(角度deg)」指定。
   6.「z-index : -1」を指定。
 ・crip-path : polygon(%,%,%,%)
   ・位置の値に「calc」と「vw」を使うとレスポンシブでも、傾斜の角度を保つことが可能。
     clip-path: polygon(0 calc(0% + 7vw), 100% 0, 100% calc(100% - 7vw), 0 100%);

◆グラデーション(buckground-image)

〇種類

 ・線形グラデーション
 ・繰り返し線形グラデーション
 ・放射グラデーション
 ・繰り返し放射グラデーション
 ・扇形グラデーション
 ・繰り返し扇形グラデージョン

〇線形グラデーション

 ・linear-gradient(方向, 開始色, 経由色1, ...., 終了色)
 ・グラデーションの方向 ↑0deg、→90deg、↓180deg
 ・文字マーカー

〇繰り返し線形グラデージョン

 ・書式	repeating-linear-gradient(方向, 開始色, 経由色1, 経由色2, ...., 終了色)
 ・終了色を100%より手前に指定する。
 ・縞模様。

〇円形グラデーション

 ・書式	radial-gradient( 中央色, 外側色)

〇円錐グラデーション

 ・書式  cinic-gradient( 開始色 角度, 経由色 角度, 終了色 )

◆影をつける(box-shaow・text-shadow)

〇box-shaow

 ◆書式 box-shadow : 左方向px 上方向px ぼかしpx 広がりpx 色  内側指定 ;
 ◆値  
   ・左右方向 必須。+は右、-は左、0で左右両方。
   ・上下方向 必須。+は下、-は上、0で上下両方。
   ・ぼかし 省略可能。
   ・広がり 省略可能。
   ・色 省略可能。
   ・内側指定 省略可能。「inset」でボックス内。
{ box-shadow: -5px -5px 10px #668AD8 inset; }

〇text-shadow

 ◆書式 text-shadow : 左方向px 上方向px ぼかし幅px 色 ;
 ◆値
   ・左右方向 必須。+は右、-は左、0で左右両方。
   ・上下方向 必須。+は下、-は上、0で上下両方。
   ・ぼかし幅 省略可能。
   ・色 省略可能。

〇drop-shadow

・書式  filter: drop-shadow: x方向 y方向 ぼかし 色;
・背景が透明の画像には、ボックス全体に影をつける。
・box-shadowの代わりに使用可能。
{ filter: drop-shadow(3px 3px 5px #000); }

変形・アニメーション

◆transformプロパティ

〇translate(移動)

 ・translate()		X軸とY軸への移動を一括指定。
 ・translateX() X軸への移動。負の値で右方向。
 ・translateY() Y軸への移動。負の値で上方向。
 ・translateZ() Z軸(奥行き)。perspectiveが必要。
 ・translate3d() X軸、Y軸、Z軸を一括設定。
transform: translateX(-40px);

〇rotete(回転)

 ・rotate(deg)		Z軸(中心を基点)に回転。
 ・rotateX(deg) X軸(上下)に回転。
 ・rotateY(deg) Y軸(左右)に回転。
 ・rotate3d(deg) X軸、Y軸、Z軸を一括で設定。

〇scale(伸縮)

 ・scale()	X軸とY軸を一括指定。カンマで区切る。
transform: scale(1.5);
transform: scale(1.5, 2.6);
 ・scaleX() X軸の拡大縮小。左右均等。負で縮小。
 ・scaleY() Y軸の拡大縮小。上下均等。負で縮小。
 ・scale3d() X軸、Y軸、Z軸の拡大縮小を一括設定。
親にtransform-styleとperspective必要。

〇skew(傾斜)

 ・skew(deg)	X軸とY軸への傾斜を一括指定。
transform: skew(10deg, 10deg);
 ・skewX(deg) X軸(横方向)に傾斜をつける
 ・skewY(deg) Y軸(縦方向)に傾斜をつける。

〇動きの起点を指定(transform-origin)

 ・transform-originは、動きの基点を変更する。
 ・値 px、%、top、bottom、left、rightなど。
 ・書式 transform-origin: X軸の基点, Y軸の基点, Z軸

〇3Dの動きを再現(transform-style)

 ・CSSで3Dを再現するために必要なプロパティ。
 ・親要素にtransform-styleを指定することで、子要素を平面もしくは、3Dで表示することが可能となる。
 ・値  flat 初期値。平面。
 preserve-3d

〇遠近感を指定(perspective)

 ・transformプロパティで前後の空間の使用に必要。
 ・perspectiveは、現在の視点から要素に対して、どの程度の距離で示すかを指定する。
 ・値が大きくなれば遠くなり、小さくなれば近くなる。
 transform: perspective(200px) rotate3d(1,1,1,45deg);

〇3Dの視点を指定(perspective-origin)

 ・どこから要素の動きを見るかを指定する。
 ・親要素に設定。
 ・値 px、%、top、bottom、left、rightなど。

〇値の組み合わせ(複数指定)

 ・値を半角スペースで区切って併記する。
     transform: translateX(100px) rotate(360deg);

◆crip-path

〇概要

 ・要素自体を斜めにするのではなく、頂点の位置をX軸	 とY軸で指定し、その形で切り抜く方法。
 ・指定した範囲の部分が表示され、外側は非表示。

〇polygon()

 ・x軸とy軸の座標を指定して多角形を作成。
 ・カンマで区切り頂点の座標を「X軸 Y軸」順で指定。

〇inset()

 ・縦と横の余白を指定し、四角形を作成。
 ・roundを指定すると、角丸を設定可能。(省略可)
 ・縦横の余白はmarginと同様、上→右→下→左。
 ・角丸の指定は、左上→右上→右下→左下の順。

〇circle()

 ・半径や比率を指定し、円形を作成。
 ・“at”以降に指定の位置を中心点とした円形。
 ・“at”以降を指定しない場合はcenter(50% 50%)。

〇ellipse()

 ・横幅と高さを指定して、楕円形を作成。
 ・circle()と同じく、”at”以降に位置を指定。

◆アニメーション(transitionプロパティ)

〇書式 

 { transition : プロパティ 時間 時間関数 遅延 ; } 
  (↑元要素に記載。変化後の状態は疑似クラスへ。)
 
 ・transition-property 適用する対象。
 ・transition-duration アニメーションの時間。
 ・transition-delay 開始するタイミング。
 ・transition-timing-function 変化の度合い。

〇時間関数

 ・ease	開始と終了時にゆっくり変化(初期値)。
 ・ease-in 開始時はゆっくり、終了時は早く。
 ・ease-out 開始時に早く、終了時にゆっくり。
 ・ease-in-out easeよりも開始終了時はゆっくり。
 ・linear 最後まで一定の速さで変化。
 ・cubic-bezier(x軸の値, y軸の値, x軸の値, y軸の値) 変化の度合いをベジェ曲線により任意で指定。

〇概要

 ・指定時間でスタイルを滑らかに変化させる。
 ・始点と終点の2点間の動きしか設定できない。
 ・途中で動きを追加したり、繰り返し動作は不可。
 ・自動再生できずホバーなど発動のきっかけが必要。
 ・色や大きさなど数値のプロパティのみ有効。
 ・すべてのプロパティを対象にする場合は「all」。
 ・変化のスピード(時間)は、秒数で指定。
 ・遅延は変化が始まるまでの待ち時間を指定。

〇複数のプロパティを変化させる

 ・変化させたいプロパティごとにカンマで区切る。
toransition: background 1s, whidth 2s ease-in-out;

◆@kyeframes(animationプロパティ)

〇概要

 ・段階が細かく指定可能、開始のきっかけが不要。
 ・「animeition」は@keyframesで指定した動きを要素に設定するプロパティ。
 ・「@keyframes」はanimation-nameを指定し、動きを「%」で段階的に指定する。
 ・書式  セレクター { animation: 名前 秒数 回数 再生方向など }
  @keyframes 名前 { 0% { スタイル } 100%{ スタイル } }   
 .test { animation: recommend-animation 2s 3; }
 @keyframes recommend-animation {
0%, 50%, 100% { top: 0; }
25% { top: -.8rem; }
75% { top: -.5rem; } }

〇animationプロパティ

 ・animation-name		名前。初期値「none」。
 ・animation-duration 開始から終了までの時間。
 ・animation-timing-function 加速度。
   ・ease 初期値。開始時と終了時はゆっくり。
   ・linear 一定速度。
   ・ease-in 開始時だけゆっくり。
   ・ease-out 終了時だけゆっくり。
   ・ease-in-out 開始時と終了時はかなりゆっくり。
 ・animation-delay 開始までの時間。
 ・animation-iteration-count 繰り返し回数。初期値「1」。「infinite」無限。
 ・animation-direction   再生方向(順番・逆再生)。
   ・normal 0%から100%に向かって順方向に再生。
   ・reverse 100%から0%に向かって逆方向に再生。
   ・alternate 順→逆方向を交互に再生。
   ・alternate-reverse 逆→順方向と交互に再生。
 ・animation-fill-mode 開始と終了時のスタイル状態。
   ・none 終了時にスタイルを適用しない。
   ・forwards  終了時にその状態のスタイルを適用。
   ・backwards 終了時にアニメーション前のスタイルを適用。
   ・both forwardsとbackwardsが両方適応する。
 ・animation-play-state アニメーションの再生・停止。
 ・animation 上記のプロパティを一括で指定。
animation-nameとanimation-durationは必須。
上記の順で記述。

表示・スクロール

◆要素からはみ出た部分の扱い(overflow・white-space)

〇overflow

 ・visible	・初期値。はみ出た部分が表示。
  ・white-spaceで「nowrap」を指定すると、横にはみ出る。
 ・hidden  ・要素からはみ出た部分が非表示。
・スクロールでの表示も不可。
 ・scroll ・はみ出た部分が隠れてスクロール可能。
・横スクロールするには、overflow:scrollとwhite-space:nowrapを指定。
 ・auto ・ブラウザの規定(基本的にスクロール)。
 ・overflow-x 横にはみ出た部分の扱いを指定。
 ・overflow-y 縦にはみ出た部分の扱いを指定。
overflow-y: scroll; /*縦方向はスクロール可*/
overflow-x: hidden; /*横方向はスクロール不可*/

〇white-space(はみ出た部分の折り返し)

 ・nomal	・初期値。右端で自動で行が折り返す。
・改行やSpaceは1つの空白文字になる。
 ・nowrap ・自動的に改行しない。横にはみ出る。
・改行やSpaceは1つの空白文字になる。
 ・pre-line ・右端で自動で行が折り返す。
・改行にみ表示に反映される。
 ・pre ・自動的に改行しない。
・空白も改行も表示に反映される。
 ・pre-wrap ・右端で自動で行が折り返す。
・空白も改行も表示に反映される。

〇三点リーダー(text-overflow: ellipsis)

 ・テキストが1行の場合のみ有効。
 ・「overflow: hidden;」と「 whiteSpace: nowrap;」と「textOverflow: ellipsis;」を同時に指定。

◆表示を消す(visibility・display: none;・opasity)

〇visibility

 ・要素の位置と高さをたもったまま表示を消す。
 ・visible ・初期値。可視。
 ・hidden ・不可視。
・子にも継承されvisibleで上書き可能。
 ・collapse ・不可視。<table> に適用。

〇display: none;

 ・要素を完全にないものとし、表示領域もなくなる。
 ・子孫要素にも値が継承され、上書きができない。

〇opasity

 ・視覚的に透明にする。

〇appearance

 ◆概要
   ・formのラジオボタンや送信ボタンに標準搭載されているCSSを、真似たり消すことができる。
   ・normal appearanceの初期値。
   ・none フォーム特有のスタイルを打ち消す。
   ・auto ブラウザに合わせてCSSを適用する。
 ◆フォームのデフォルトCSSの打消し
   1.「opacity: 0;」で透明にする。(←必要性?)
   2.「appearance: none;」でデフォルトCSS削除。
   3.「position: absolute;」でレイアウトに関与させないよう指定。

◆z-index

・要素の重なり順を指定するプロパティ。
・z-index:数字で指定した値が大きい要素ほど上に表示され、数字には整数を入れる。
・初期値「0」。
・何も指定しないと後ろに書かれた要素が上に重なる。
・「position: static;」の要素には使えない。positionで何も指定していない限り、z-indexは使えない。

◆scroll-snap

〇概要

 ・scrollの停止位置を指定できる。
 ・スクロールしたい子要素全体を親要素で囲む。
 ・親 overflow: auto; (←必須)
  scroll-snap-type: y mondtory;
height: 100vh; (←height指定必須)
  子 scroll-snap-align: start;

〇croll-snap-type(スクロールする軸と位置・親指定)

 ・Y		縦方向にスクロール。
 ・X 横方向にスクロール。
 ・both 縦軸と横軸に移動。
 ・mandatory 現在か次のエリアの片方のみ表示。
 ・proximity 中間地点の場合はその位置で停止。

〇scroll-snap-align(ベースラインの指定・子指定)

 ・start	エリアの開始位置でスクロールを停止。
 ・end エリアの終わりの位置で
 ・center 中央位置。

◆scroll-behavior(スムーズスクロール)

 ・ページ内リンクで、リンク先へ滑らかに移動。
 ・htmlに「scroll-behavior; smooth;」を指定。
html { scroll-behavior; smooth; }
 ・auto 瞬時にスクロール。
 ・smooth 円滑にスクロール。
 ・固定ヘッダーでは、移動後の先頭部分がヘッダーの後ろに隠れる。
 ・遷移先にscroll-margin-topプロパティを指定で、スクロール時のみ適用の余白を指定できる。
.section { scroll-margin-top: 80px; }

◆position: sticky(親要素内に固定表示したスクロール)

 ・親要素内に固定表示して、スクロールに合わせて追従させる。
 ・top, bottom, left, rightのどれか一つ以上を指定が必要。
 ・position: sticky;を指定するとその親要素が自動的にスティッキーコンテナとなる。
 ・スティッキーアイテムはスティッキーコンテナ内でしかフロートすることが出来ない。
 ・「position: stiky;」が設定されている要素の親要素の終了位置で固定が解除される。

文字・テキスト・アイコン

◆文字の色・大きさ・太さの設定

〇文字色(color)

〇文字の太さ(font-weight)

 ・bold	・太字。700と同じ。
 ・nomal ・普通。400と同じ。
 ・lighter ・太さを今より一段階細くする。
 ・bolder ・太さを今より一段階太くする。

〇文字のスタイル(font-style) 

 ・italic	斜体。
 ・nomal 普通。

〇文字のサイズ(font-size)

 ・px		・縦のピクセルの大きさで指定。
・ブラウザの規定値は「16px」。
・メインの文章は15px〜18pxが推奨。
 ・em ・親要素の文字の高さを「1」とした倍率。
・親にpx指定がない場合「1em=16px」。
・bodyやhtml要素でfont-sizeを62.5%にすると「1em=10px」となる。
 ・rem ・htmlタグに指定されたサイズを基準。
・デフォルトの場合は「1rem=16px」。
 ・% ・親要素の文字の大きさを100とした倍率。
 ・キーワード ・7段階。xx-small~medium~xx-large、smaller、largerで指定。

〇文字の行間(line-height)

 ・nomal	ブラウザの初期値。
 ・px px数で指定。
 ・em 親要素の文字の高さの相対値。
 ・% 親要素の文字の高さの相対値。
 ・単位無し 文字の高さを「1」とした場合の倍率。
・「1.6」の場合、「0.6」文字分だけ行間が空く。
・読みやすい行間は「1.5〜2.0」の間。

〇文字の間隔(letter-spacing)

 ・nomal	ブラウザの初期値。ほぼ「0」となる。
 ・px px数で指定。
 ・em 親要素の文字の高さの相対値。
・「0.1em=文字の高さの1/10」の字間。
・読みやすい字間は「指定なし、0.05〜0.1em」。

〇インデント/字下げ(text-indent)

 ・単位付き数字	初期値「0」。マイナスも指定可能。
 ・% 親要素のwidthに対するパーセント。
 ・eatch-line 単位付き数字と併用。
 ・hanging 単位付き数字と併用。インデントされる行が逆転(1行目以外がインデント)。
text-indent: 1em each-line;
text-indent: 1em hanging;
 ◆ぶら下がりインデント(2行目以降1字下げ)
text-indent: -1em;
padding-left: 1em;

〇文字の右端揃え(text-arlign: justify)

 ・「text-arlign: justify」で右端列がブロックに揃う。
 ・和文でtext-arlign: justifyを指定する際の指定方法。
.justify{ text-align: justify;
   word-break: break-all;
 text-justify: inter-ideograph;
  text-justify: inter-character;
 word-wrap: break-word;
 overflow-wrap: break-word; }

〇縦書き横書きと行ブロックの方向(writing-mode)

 ・horizontal-tb	初期値。横書き、上から下。
 ・vertical-rl 縦書き、右から左。
 ・vertical-lr 縦書き、左から右。
 ・日本語の縦書きでは、vertical-rl を指定。

〇縦書のテキストの向きの調整(text-orientation)

 ・mixed	ラテン文字など横書き標準は右向き、漢字など縦書き標準の文字は上向きに表示。
 ・upright すべての文字を上向きに表示。
 ・sideways すべての文字を右向きに表示。

〇大文字/小文字(text-transform)

 ・none		初期値。変換しない。
 ・capitalize 各単語の先頭文字を大文字に変換。
 ・uppercase 全ての文字を大文字に変換。
 ・lowercase 全ての文字を小文字に変換。

〇装飾(text-decoration)

 ・アンダーラインや、aタグの下線を消す際に使用。
   ・none 線無し
   ・underline 下線
   ・overline 上線
   ・line-through 打ち消し線
   ・underline double 下線・二重線
   ・underline wavy 下線・波線
   ・underline red 下線・赤色
{text-decoration: underline wavy red 3px;}
 ・text-decoration-style 線の種類の指定
 ・text-decoration-color 線の色の指定
 ・text-decoration-thickness 線の太さ

〇書体(font-family)

 ・bodyタグに対してCSSでフォントを指定する。
 ・複数のフォント名を半角カンマで区切って並べる。
 ・フォント名にスペースや数字が含まれるものは「''」または「”"」で囲む。
 ・値の最後に総称フォントを書く。
 { font-family : フォント名1,フォント名2,.....,serif ;}
 ・フォントファミリー名(正式な固有名称)
   ・MSゴシック:Microsoft Gothic。WindowsOS。
   ・MS Pゴシック:Windows 8以降に導入。
   ・メイリオ:Meiryo。マイクロソフトの日本語用。
   ・Meiryo UI:ひらがなとカタカナの横幅が狭く、メイリオより多くの文字が記載可能。
   ・游ゴシック:直線的でシンプルな文字形状。
   ・ヒラギノ角ゴシッグ:デザイン業界で高評価。
・総称フォント(フォントの大きなカテゴリー)
   ・OSやブラウザ毎にデフォルトのフォントが適用。
   ・総称フォント名は引用符では囲わない。引用符で囲うと、ブラウザがフォントファミリー名として
認識して正しく機能しない場合がある。
   ・総称フォントには、sans-serif(ゴシック体)か、serif(明朝体)のいずれかを指定しておく。

◆Webフォント(Google Fonts)

1.Google Fontsで使いたいフォントを選択。
2.<link>部分のコードをhtmlの<head>に貼り付け。
3.CSS部分のコードをCSSファイルに貼り付け。
4.(適用したいhtmlのタグのclassに指定?

◆Webアイコン(Font Awesome)

1.<head>に<link>でCSSの共通リンクを指定。(ver.5とver.6の区別が必要)
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
2.font-family「'Font Awesome 5 Free'」を指定。
'Font Awesome 5 Free'
'Font Awesome 6 Free'
 (Pro版、ver.6の区別が必要)
3.「font-weight : bold」を指定。
4-a.htmlに<i>タグのclass属性で記載する。
<i class="fab fa-twitter"></i>
4-b.CSSにcontentsプロパティでUnicodeを記載。
(\バックスラッシュ必須)。
li::befoer { content : "\fooc"}

CSS設計・SASS

◆SCSS記法

〇概要

 ・拡張子は「.scss」。
 ・HTMLで直接読み込めない。
 ・「.scss」ファイルをコンパイルして「.css」ファイルに変換してから読み込ませる。
 ・コンパイルはV.S.Codeの拡張機能「Wathc Sass」が便利。

〇入れ子(ネスト)構造

 ・記述量が減り、HTML構造も見えやすくなる。
 ・クラス名を変更したい場合、Sassを使用している場合、圧のクラス名のみを変更すればいい。
.header {
(スタイル指定)
nav {
(スタイル指定)
}
ul {
(スタイル指定)
li {
(スタイル)
}
}
}

〇「&」で親セレクタを参照 

 ・「&(アンパサンド)」を使用すると、ネストしている親セレクタを参照できる。
 ・ホバーや疑似要素などを使用したい場合、Sassでは「&」を使用する。
a {
color: #333;
&:hovor {
text-decoration: underline;
}
}

〇メディアクエリの使用

 ・Sassでメディアクエリの指定をしたい場合は、ネスト内に記述する。
 ・一つの要素に対するすべてのスタイルを一か所にまとめることが出るため、コードのメンテナンスが容易。
.test{
(スタイル記述)
@media screen and (max-width: 1024px) {
(スタイル記述)
}
}

〇変数の使用($変数名: 値;)

 ・Sassで変数名の指定		$変数名: 値;
 ・Sassで変数名の呼び出し $変数名
$main-color: blue;
.test {
background-color: $main-color;
}
 ・上記のコンパイル結果
.test {
background-color: blue;
}

〇定義したCSSスタイルの定義(@mixin)・呼び出し(@include)

 ・@mixin	CSSスタイルを定義する
@mixin 任意の名前 {
(スタイルの定義)
}
 ・@include CSSスタイルを呼び出す
セレクタ {
@include 任意の名前;
(追加したいスタイル)
}

〇条件分岐(@if)

 ・@if 条件 {
(スタイル)
  }
  @ else {
(スタイル)
  }
$sample: 0;
.box {
@if sample == 0 {
background-color: blue;
}
}

〇2点間の繰り返し処理(@for)

 ・指定した開始値から終了地の間の繰り返し処理を行う。
 ・2種類の書き方がある。
・through 終了値を含める
@for $変数名 from 開始値 through 終了値 {
(スタイル)
}
・to 終了値を含ない
@for $変数名 from 開始値 to 終了値 {
(スタイル)
}
 ・文字列として変数を使いたい場合は「#{$変数名}」と記述する。
@for $i from 1 through 4 {
.mt#{$i * 20} {
margin-top: 20px * $i;
}
}
 ・上のコンパイル結果
.mt20 {
margin-top: 20px;
}
.mt40 {
margin-top: 40px;
}
.mt60 {
margin-top: 60px;
}
.mt80 {
margin-top: 80px;
}

条件指定の繰り返し(@while)

 ・条件を定義し、その条件を満たしている間は繰り返し処理を行う。
@while 繰り返し条件 {
(スタイル)
}
 ・例
$i: 0;
@for $i < 4 {
$i: $i + 1;
.mt#{$i * 20} {
margin-top: 20px * $i;
}
}
 ・上のコンパイル結果
.mt20 {
margin-top: 20px;
}
.mt40 {
margin-top: 40px;
}
.mt60 {
margin-top: 60px;
}
.mt80 {
margin-top: 80px;
}

リスト数だけ繰り返す(@each)

 ・あらかじめ指定しておいたリストの数だけ繰り返し処理を行うことができる。
$変数名①: リスト1, リスト2, リスタオ3, ・・・;   ←リストの定義
@each $変数名② in $変数名① {
(スタイル)
}
 ・例
$animals: cat, lion, tiger;
@each $animal in $animals {
.#{animal} {
background-image: url("/img/#{$animal}.png");
}
 ・上のコンパイル結果
.cat {
background-image: url("/img/cat.png");
}
.lion {
background-image: url("/img/cat.png");
}
.tiger {
background-image: url("/img/tiger.png");
}