2. CSS 基本
セレクタ
/* 基本セレクタ */
.class-name { } /* クラス */
#id-name { } /* ID */
div p { } /* 子孫 */
div > p { } /* 直接の子 */
div + p { } /* 隣接兄弟 */
/* 擬似クラス */
button:hover { } /* ホバー時 */
input:focus { } /* フォーカス時 */
tr:nth-child(even) { } /* 偶数行 */
li:first-child { } /* 最初の子 */
li:last-child { } /* 最後の子 */
/* 属性セレクタ */
[data-active="true"] { } /* data属性で絞り込み */
Flexbox レイアウト
/* 横並び(中央揃え) */
.container {
display: flex;
justify-content: center; /* 主軸: center | space-between | space-around */
align-items: center; /* 交差軸: center | flex-start | flex-end */
gap: 16px; /* 要素間の隙間 */
}
/* 折り返し */
.wrap-container {
display: flex;
flex-wrap: wrap;
}
/* 子要素の伸縮 */
.item {
flex: 1; /* 均等に広がる */
flex: 0 0 200px; /* 固定幅200px */
}
Grid レイアウト
/* 3列グリッド */
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr); /* 等幅3列 */
gap: 16px;
}
/* 自動フィット(レスポンシブ) */
.auto-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 12px;
}
よく使うプロパティ
/* ボックスモデル */
margin: 16px; /* 外側の余白 */
padding: 12px 16px; /* 内側の余白(上下 左右) */
border: 1px solid #ddd;
border-radius: 8px;
/* テキスト */
font-size: 16px;
font-weight: bold;
color: #333;
text-align: center;
/* 背景・影 */
background: #fff;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
/* トランジション */
transition: all 0.3s ease;
レスポンシブ(Media Query)
/* モバイル: 640px以下 */
@media (max-width: 640px) {
.container { flex-direction: column; }
}
/* タブレット以上 */
@media (min-width: 768px) {
.sidebar { display: block; }
}