ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
CSS (Cascading Style Sheets) は、HTML や XML 文書の表示スタイルを記述するためのスタイルシート言語である。HTML が「文書の構造(何が見出しで、何が段落か)」を担うのに対し、CSS は「見た目(何色で、どこに、どんな大きさで表示するか)」を担う。この構造と表現の分離こそが現代の Web 開発の土台になっており、HTML と CSS は常にセットで語られる。
1996 年に W3C で CSS1 が勧告され、その後 CSS2 (1998) → CSS2.1 (2011) と単一の巨大仕様だったが、CSS3 以降は「Selectors」「Flexbox」「Grid」「Color」「Animations」のようにモジュール単位で個別に勧告される方式に変わった。これにより、ブラウザ実装の進捗が読みやすくなり、開発者が機能ごとに対応状況を確認できるようになった (caniuse.com など)。拡張子は .css、MIME タイプは text/css。
内部構造・構文
CSS の基本単位はルールセットで、「セレクタ」と「宣言ブロック (波括弧)」の組み合わせで書く。
/* セレクタ { プロパティ: 値; プロパティ: 値; } */
body {
margin: 0;
font-family: system-ui, sans-serif;
background: #fff;
color: #333;
}
.button {
padding: 8px 16px;
border-radius: 4px;
background: #2563eb;
color: white;
cursor: pointer;
}
.button:hover { background: #1d4ed8; }
@media (max-width: 768px) {
.button { width: 100%; }
}
:root {
--main-color: #2563eb;
--gap: 16px;
}
.card {
padding: var(--gap);
border: 1px solid var(--main-color);
}
セレクタはクラス (.foo)、ID (#foo)、要素名 (p)、属性 ([type="text"])、擬似クラス (:hover / :nth-child(2))、子孫 (.foo .bar) など豊富に揃う。複数のルールが同一要素にマッチした場合、特異度 (specificity) で優劣が決まる。インラインスタイル > ID セレクタ > クラス/属性/擬似クラス > 要素セレクタ、というのが大まかな序列。特異度が同じならソース上後ろに書いた方が勝つ。!important は最強だが、保守性を下げるため緊急避難以外では避けるべき。
ボックスモデルは CSS の根本概念で、すべての要素は「content(中身)」「padding(内側余白)」「border(枠線)」「margin(外側余白)」という同心の箱として配置される。デフォルトは box-sizing: content-box で、width が content のみを指すが、現代では * { box-sizing: border-box; } を全体に適用し、border まで含めた値を width とする慣習が定着している。
主な用途
- Web ページのスタイリング — レイアウト、配色、フォント、アニメーション、トランジション
- レスポンシブデザイン — メディアクエリで PC / タブレット / モバイルそれぞれに最適化
- 印刷スタイル —
@media printで印刷時の見た目を別途指定 - ダークモード —
@media (prefers-color-scheme: dark)+ CSS Variables で実装 - Web フォント —
@font-faceで外部フォントを読み込み - UI フレームワーク — Bootstrap / Tailwind / Bulma などはすべて CSS をプリセットしたもの
関連形式との比較
| 形式 | 性質 | 用途 | 備考 |
|---|---|---|---|
| CSS (.css) | ブラウザ標準 | HTML のスタイル | そのまま読み込める |
| SCSS / Sass (.scss/.sass) | プリプロセッサ | 変数・mixin・ネスト | ビルドで .css に変換 |
| Less (.less) | プリプロセッサ | Sass と類似 | Bootstrap 旧版で採用 |
| CSS Modules | スコープ付き | React/Vue 等で衝突防止 | クラス名を自動でユニーク化 |
| Tailwind (utility CSS) | ユーティリティクラス | HTML 内にクラス羅列 | CSS を書かずに済ませる思想 |
| CSS-in-JS | JS 内に記述 | コンポーネント単位 | styled-components, Emotion 等 |
編集・パーサ・ツール
- エディタ — VS Code(IntelliSense + Emmet)、JetBrains 系、各種テキストエディタ
- DevTools — Chrome の「Styles」「Computed」パネルで適用ルールの優先順位とカスケードを可視化可能
- Lint — Stylelint が事実上の標準。SCSS や CSS-in-JS にも対応
- PostCSS — Autoprefixer(ベンダープレフィックス自動付与)/ cssnano(圧縮)等のプラグイン基盤
- 互換性確認 — caniuse.com、MDN の「Browser compatibility」表
- フレームワーク — Tailwind CSS / Bootstrap / Bulma / Open Props
注意点・落とし穴
- 特異度の戦い —
!importantを多用すると優先順位の制御が破綻する。CSS の設計(BEM、OOCSS、SMACSS など)で命名を整える方が結果的に楽 - margin の相殺 (collapsing) — 隣接する要素の margin-top と margin-bottom は大きい方に「相殺」される。Flexbox / Grid の中では起こらないため、現代ではあまり遭遇しないが古いコードでは要注意
- z-index の罠 — 親要素に
positionやtransformが指定されるとスタッキングコンテキストが新規発生し、子の z-index は親の範囲内でしか効かない - ベンダープレフィックス —
-webkit-/-moz-等は基本的に Autoprefixer に任せ、手書きしない - レスポンシブの起点 — モバイルファースト(小→大に min-width で拡張)か、PC ファースト(大→小に max-width で縮小)かを決めてから書く
- カスタムプロパティとプリプロセッサ変数の混同 — SCSS の
$varはコンパイル時、CSS のvar(--x)は実行時に解決される。前者はランタイムで変更不可
関連リンク
- Web・データ・設定(親カテゴリ)
- ファイル拡張子とは
- HTML(.html / .htm) — 構造を担うペアのフォーマット
- XML(.xml) — XML にも CSS は適用可能(SVG 等)
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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アノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?