🎨 CSS

CSSの基本構造

規則セット・プロパティ・セレクター・カスケード・Flexbox など基礎を実例で学ぶ

1 規則セット

セレクターリスト
複数のセレクターをコンマで区切って並べ、共通のスタイルを適用します。
要素タグ名(p)・クラス(.className)・ID(#idName)などが使えます。

→ セレクターリストの使用例

宣言ブロック
中括弧 { } で囲まれ、プロパティと値のペアを記述します。
宣言
プロパティ : 値; の形式。これらをまとめて ルール(規則)セット といいます。

CSS とは カスケーディングスタイルシート の意味です。


2 プロパティ

プロパティは数多くあるため、MDN の一覧を標準リファレンスとして使うのがおすすめです。

margin はよく使われるショートハンド記述です。Google検索で例を確認

プロパティ値関数 calc() を使うと計算が可能です。例:width: calc(100% / 3);MDN参考

↑ トップへ戻る

3 セレクター分類

要素・クラス・ID によるセレクター

属性によるセレクター

疑似クラス・疑似要素によるセレクター

結合子

MDN: 結合子の詳細


4 カスケード・詳細度・継承

カスケード(cascading)

同じ h1 に複数のルールがある場合、後に書いたものが適用されます。カスケード順(MDN)

詳細度

優先度は #id > .class > 要素名 の順。インラインスタイルは スコア 1000 で最優先。!important はさらに上ですが多用は避けましょう。

継承と抑制

親要素から子要素へプロパティ値が引き継がれます。抑制には以下を使います:

.fix {
  background-color: initial;
  border: initial;
}
/* または全リセット */
.fix { all: unset; }
↑ トップへ戻る

5 ブロック要素とインライン要素

div(ブロック要素)は上下左右に margin が効き、横並びにできません。
span(インライン要素)は左右のみ margin が効き、横並びになります。

div(ブロック要素)— 上下左右に margin・幅いっぱい
span span span
/* ブロック → インライン に変換 */
div  { display: inline; }
/* インライン → ブロック に変換 */
span { display: block; }
/* 両方の性質を持つ */
span { display: inline-block; }

→ ブロック・インラインの実装例


6 Flexbox

1次元(行または列)のレイアウトを柔軟に制御できます。MDN: Flexboxの基本概念

.container {
  display: flex;
  flex-direction: row;      /* 主軸の方向: row(横)/ column(縦) */
  justify-content: center;  /* 主軸方向の揃え */
  align-items: center;      /* 交差軸方向の揃え */
  gap: 16px;
}
🎮 ゲームで学ぶ:Flexbox Froggy(全24問) — カエルを蓮の葉の上に乗せるゲームで直感的に覚えられます。

→ Flexboxでアクセシブルなページを作成


7 flex プロパティ

flex プロパティは flex-growflex-shrinkflex-basis のショートハンドです。

.item { flex: 1; }          /* flex-grow:1 flex-shrink:1 flex-basis:0 */
.item { flex: 0 0 200px; }  /* 幅を 200px で固定 */

→ flex プロパティで幅を詳細に指定する例

↑ トップへ戻る

8 outline でレイアウトを調べる

outline: 1px solid red;border と違いレイアウトに影響しない(幅がカウントされない)ため、デバッグに最適です。

/* デバッグ用:全要素の輪郭を確認 */
* { outline: 1px solid red; }
border はボックスモデルの幅に加算されますが、outline は加算されません。レイアウト崩れの確認に積極的に使いましょう。

9 clamp() 関数

値を最小値と最大値の間に制限します。clamp(最小値, 推奨値, 最大値)

/* フォントサイズをビューポートに合わせて可変に */
font-size: clamp(1rem, 2.5vw, 1.5rem);

/* 幅をデバイス幅に応じて柔軟に */
width: clamp(50px, 60%, 800px);
width: clamp(50px, 60%, 600px) のデモ

→ clamp 関数の実装例 / MDN参考

↑ トップへ戻る 🏠 ホームへ
⚠️ 免責:コンテンツは必ずしも正しいとは限りません。重要な情報は公式ドキュメントで確認してください。