ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
CSS とは
CSS(Cascading Style Sheets)は、HTML 要素の見た目・レイアウトを指定するためのスタイルシート言語です。1996 年に W3C で最初の仕様 CSS1 が勧告されました。
「Cascading」はカスケード(連鎖適用)の意味。複数のスタイル指定があるとき、詳細度・記述順・継承のルールで優先順位が決まります。
適用方法
赤いテキスト
セレクタ
| 種類 | 記法 | 意味 |
|---|---|---|
| 要素 | p | すべての |
| クラス | .btn | class="btn" を持つ要素 |
| ID | #main | id="main" を持つ要素(ページ内一意) |
| 属性 | [type="text"] | 属性で絞り込み |
| 子孫 | nav a | nav 配下のすべての a |
| 子 | ul > li | ul の直接の子の li |
| 隣接兄弟 | h2 + p | h2 の直後の p |
| 疑似クラス | a:hover | マウスホバー時 |
| 疑似要素 | p::before | 要素の前後に擬似的にコンテンツ追加 |
| 論理演算 | :is() :where() :not() :has() | 柔軟な条件指定(モダン) |
ボックスモデル
すべての要素は content → padding → border → margin の 4 層の箱で構成されます:
.box {
width: 300px;
height: 200px;
padding: 20px; /* 内側の余白 */
border: 2px solid #333;
margin: 16px auto; /* 外側の余白、中央寄せ */
/* box-sizing で計算方法を変更(推奨) */
box-sizing: border-box; /* width に padding+border 含む */
}
/* グローバルに border-box を適用するのが現代の定番 */
*, *::before, *::after {
box-sizing: border-box;
}
Flexbox(1 次元レイアウト)
.container {
display: flex;
flex-direction: row; /* row / column */
justify-content: space-between; /* 主軸方向の配置 */
align-items: center; /* 交差軸方向の配置 */
gap: 16px; /* 子要素間の余白 */
flex-wrap: wrap; /* 折り返し */
}
.item {
flex: 1; /* 等分で伸縮 */
flex: 0 0 200px; /* 固定幅 200px */
flex: 1 1 300px; /* 最低 300px、可能なら伸縮 */
}
Grid(2 次元レイアウト)
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr); /* 3 等分 */
grid-template-columns: 200px 1fr 100px; /* 固定 + 可変 + 固定 */
grid-template-rows: auto;
gap: 20px;
}
/* レスポンシブグリッド(minmax + auto-fit) */
.responsive {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 16px;
}
/* 領域指定 */
.layout {
display: grid;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
grid-template-columns: 200px 1fr;
}
header { grid-area: header; }
main { grid-area: main; }
レスポンシブデザイン(メディアクエリ)
/* モバイルファースト(デフォルトはモバイル) */
.container {
padding: 16px;
}
/* タブレット以上 */
@media (min-width: 768px) {
.container { padding: 24px; }
}
/* デスクトップ以上 */
@media (min-width: 1200px) {
.container { padding: 32px; max-width: 1200px; margin: 0 auto; }
}
/* ダークモード対応 */
@media (prefers-color-scheme: dark) {
body { background: #1a1a1a; color: #eee; }
}
/* モーション減らす */
@media (prefers-reduced-motion: reduce) {
* { animation: none !important; transition: none !important; }
}
CSS 変数(カスタムプロパティ)
:root {
--primary: #3b82f6;
--primary-dark: #1e40af;
--text: #1f2937;
--bg: #ffffff;
--radius: 8px;
--shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.btn {
background: var(--primary);
color: white;
border-radius: var(--radius);
box-shadow: var(--shadow);
}
.btn:hover {
background: var(--primary-dark);
}
/* ダークモードで上書き */
[data-theme="dark"] {
--text: #f3f4f6;
--bg: #111827;
}
CSS 関連エコシステム
| カテゴリ | 代表ツール | 特徴 |
|---|---|---|
| プリプロセッサ | Sass / SCSS、Less、Stylus | 変数、ネスト、ミックスイン、関数 |
| ユーティリティ | Tailwind CSS | HTML 内でクラス指定、PurgeCSS でビルド時除去 |
| CSS フレームワーク | Bootstrap、Bulma、Foundation | UI コンポーネント・グリッド済 |
| CSS-in-JS | styled-components、Emotion | JS で書く、React と相性◎ |
| 後処理 | PostCSS、Autoprefixer | ベンダープレフィックス自動付与 |
CSS3 の主な新機能
- Flexbox / Grid: モダンレイアウト
- カスタムプロパティ:
--varによる動的変数 - アニメーション:
@keyframes、transition、transform - angle / 単位:
rem、vw、vh、vmin、ch、% - 角丸 / 影:
border-radius、box-shadow、filter: drop-shadow() - グラデーション:
linear-gradient()、radial-gradient() - コンテナクエリ:
@containerで親サイズに応じたスタイル(2023〜) - ネスト: SCSS のようなネスト記法をネイティブ対応(2023〜)
ブラウザ対応の確認: caniuse.com
新しい CSS 機能を使うときは https://caniuse.com/ でブラウザ対応状況を確認します。例: 「container query」「has selector」と検索すると、各ブラウザのバージョン別対応表が出ます。
FAQ
Q: Flexbox と Grid どちらを使う?
A: 1 次元の整列(ナビ、カード横並び)は Flexbox、2 次元のレイアウト(ページ全体の格子)は Grid。組み合わせて使うのが普通です。
Q: !important は使うべき?
A: 原則避ける。詳細度の戦いになり保守困難に。ユーティリティクラス(Tailwind 等)や、サードパーティ CSS の上書きが必要なときだけ。
Q: Tailwind は CSS の知識なしで使える?
A: 内部はただの CSS(flex justify-between p-4)なので、CSS の概念(フレックス、パディング)の理解は必要。むしろ Tailwind を学ぶ過程で CSS も身に付きます。
Q: モバイルファーストとデスクトップファーストどちら?
A: モバイルファースト推奨。min-width を使い、デフォルトをモバイル用に書き、画面が大きくなるにつれて拡張するのが今の主流です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?