Before/After で見る効果・チェックリスト・WordPress 実装・base.css テンプレート集
この記事は前後編の2本構成です
- 前編:Reset CSS の基本概念・種類の違い・主要ライブラリの特徴と選び方
- 後編(この記事):Before/After で見る効果・WordPress 実装・base.css テンプレート集
この記事で得られること
前編では Reset CSS の「選び方」を解説しました。後編では、選んだ後の「使い方」にフォーカスします。
具体的には、以下の 4 つをお届けします。
- Before/After 画像で見る効果 ― ブログ・LP・フォーム・管理画面、それぞれで何が整うのか
- チェックリスト ― 「どれを選ぶ?」「次に何をする?」を Yes/No で判断
- base.css テンプレート集 ― 用途別にコピペで使えるコード
- WordPress 実装 ― Cocoon / 子テーマ / エディタ別の読み込み方法
1. Before/After で見る ― Reset CSS は「どこに効くのか」
「Reset CSS を入れると何が変わるの?」
言葉で説明するより、見た方が早いですよね。ここでは 4 種類の画面(ブログ・LP・フォーム・管理画面)を例に、Reset + base.css を適用する前と後の違い を視覚的に確認します。
💡 以下の画像は「概念図」です。違いを分かりやすくするため、実際より誇張して表現しています。
1-1. ブログ(テキスト中心のサイト)
ブログのようなテキスト中心のサイトでは、余白と行間のリズム が読みやすさを左右します。
Before の状態
見出しや段落の余白がブラウザ依存なので、「h2 の上がやたら広い」「リストのインデントが深すぎる」といったガタつきが起きやすい。

After の状態
Reset で初期スタイルのクセを整え、base.css で余白と行間を統一。文章のリズムが安定して、読みやすさがグッと上がる。

ブログで特に効くポイント
| 要素 | Before の問題 | After で解決 |
|---|---|---|
h1 / h2 |
UA の余白が過剰だったり、ブラウザで違ったり | base.css で margin を統一 |
| 段落間隔 | p + p のリズムがバラバラ |
margin-top: 1em などで固定 |
| リスト | ul / ol のインデントと marker が不揃い |
padding-left を統一 |
| 画像 | 親要素からはみ出すことがある | max-width: 100% で防止 |
1-2. LP(ランディングページ)
LP は「ヒーローセクション + カード + CTA ボタン」という構成が多く、統一感 が命です。
Before の状態
見出しの margin やボタンの見た目が OS / ブラウザ依存になり、「同じデザインなのに、なんか揃って見えない」状態に。

After の状態
Reset でクセを薄め、base.css とコンポーネントで「同じルール」を適用。ブラウザが違っても同じ見た目になる。

LP で特に効くポイント
| 要素 | Before の問題 | After で解決 |
|---|---|---|
| CTA ボタン | フォント・余白・line-height が揺れる | base.css で統一 |
| 見出し / 本文 | 縦のリズムがバラバラ | padding / margin を自前で固定 |
| カード UI | box-sizing の違いでズレる | box-sizing: border-box を全体適用 |
1-3. フォーム ― Reset の真価が出る場所
フォームは、Reset が「一番効く」と同時に「一番事故る」場所です。
なぜか? ブラウザのフォーム要素(input、button、select など)は、OS のネイティブ UI と連携していることが多く、Reset の仕方によっては「ボタンがボタンに見えなくなる」「チェックボックスが消える」といった事故が起きます。
強い Reset を使うなら、「フォームをゼロからデザインする覚悟」が必要です。
Before の状態
input の padding、button の font-size、select の見た目が OS / ブラウザでバラバラ。

After の状態
Reset + base.css でフォントを継承させ、padding と line-height を統一。OS 依存を減らしつつ、アクセシビリティ(:focus-visible)は維持。

フォームで特に効くポイント(最重要)
| 要素 | Before の問題 | After で解決 |
|---|---|---|
| フォント | input と button で font-family が違う | font: inherit で継承 |
| 余白 | padding / line-height が OS 依存 | base.css で統一 |
| フォーカス | :focus-visible が消えることがある |
明示的に設定して維持 |
| checkbox / radio | 強い Reset で見えなくなる | 必要に応じて「戻す」CSS を追加 |
1-4. 管理画面 ― 表・メニュー・UI の統一感
管理画面は「表、リスト、フォーム、ボタン」が密集する場所。ベースのズレが目立ちやすく、Reset + base.css の効果が実感しやすいです。
Before の状態
表の行高がバラバラ、メニューの余白が不揃い、ボタンのサイズ感が統一されていない。

After の状態
Reset + base.css で「UI の粒度」が揃い、全体の体験が一気に良くなる。

管理画面で特に効くポイント
| 要素 | Before の問題 | After で解決 |
|---|---|---|
| 表の行高 | line-height がバラバラ | base.css で統一 |
| メニューの余白 | padding / margin が不揃い | 統一ルールを適用 |
| ボタン / 入力 | フォームと同じ問題 | フォーム用の base.css で解決 |
2. チェックリスト ― 「Reset 選び」から「base.css 設計」へ
「どの Reset を選べばいいか」は、実は 案件の特性 で決まります。
以下の Yes/No チェックリストを使えば、迷わず判断できます。
STEP 1: 自分の案件を分類する
Q1. CSS フレームワークを使う?(Tailwind / Bootstrap など)
- Yes →
- Tailwind なら Preflight、Bootstrap なら Reboot がベースとして同梱されている
- 外部の Reset CSS は原則入れない(入れると二重適用で事故る)
- どうしても入れたい場合は、衝突がないか必ず検証
- No → Q2 へ
Q2. フォームが多い?(問い合わせ・購入・会員登録など)
- Yes →
- 強い Reset(destyle、the-new-css-reset)は避けるか、フォームコンポーネントを必ず自作
- おすすめ:
sanitize.cssまたはnormalize.css
- No → Q3 へ
Q3. デザインを「白紙から」作る?(UI 作り込み・デザインシステム)
- Yes →
- おすすめ:
destyle.cssまたはthe-new-css-reset - ただし base.css + コンポーネント設計が必須
- おすすめ:
- No → Q4 へ
Q4. できるだけ軽く、最低限でいい?
- Yes →
modern-normalize/modern-css-reset/minireset.css - No →
sanitize.css(保守性が高く、長期運用に強い)
STEP 2: Reset を入れたら「次にやること」を決める
Reset を入れて終わりではありません。必ず決めるべき項目 があります。
ここを飛ばすと、結局「なんとなく崩れる」ままになってしまいます。
全案件で決める(base.css 必須項目)
| 項目 | やること | 理由 |
|---|---|---|
| box-sizing | *, *::before, *::after { box-sizing: border-box; } |
padding を含めたサイズ計算にする |
| body の基本設定 | font-family / line-height / color | 読みやすさのベースを作る |
| 画像・動画 | max-width: 100% |
コンテナからはみ出さないように |
| フォームのフォント | font: inherit |
input と button でフォントを揃える |
| :focus-visible | 消さない。むしろ明示的に設定 | アクセシビリティを守る |
強い Reset を使った場合だけ追加で決める
| 項目 | やること | 理由 |
|---|---|---|
| 見出し | サイズ・余白・太さを設定 | 消えてしまっているので |
| リスト | marker の表示、インデント幅 | 同上 |
| ボタン | padding / border-radius / cursor | 同上 |
| checkbox / radio | 「戻す」CSS を書くか、完全自作するか | 消えると操作できなくなる |
3. base.css テンプレート集(コピペ OK)
「毎回同じこと書くの面倒…」という方のために、用途別にコピペで使えるテンプレート を用意しました。
3-1. 共通テンプレ(まずこれを入れる)
どんな案件でも必要になる、最小限の base.css です。
/* ============================================
base.css - 共通テンプレート
============================================ */
/* Box sizing
-------------------------------------------- */
*,
*::before,
*::after {
box-sizing: border-box;
}
/* Body
-------------------------------------------- */
body {
margin: 0;
line-height: 1.6;
font-family:
system-ui,
-apple-system,
"Segoe UI",
Roboto,
"Helvetica Neue",
Arial,
"Noto Sans",
sans-serif,
"Apple Color Emoji",
"Segoe UI Emoji",
"Segoe UI Symbol";
}
/* Media(画像・動画のはみ出し防止)
-------------------------------------------- */
img,
picture,
video,
canvas,
svg {
display: block;
max-width: 100%;
}
/* Form(フォント継承)
-------------------------------------------- */
input,
button,
textarea,
select {
font: inherit;
color: inherit;
}
/* Text wrapping(長い単語の折り返し)
-------------------------------------------- */
h1, h2, h3, h4, h5, h6,
p {
overflow-wrap: anywhere;
}
/* Focus(アクセシビリティ:消さない!)
-------------------------------------------- */
:focus-visible {
outline: 2px solid currentColor;
outline-offset: 2px;
}
3-2. ブログ向け(読みやすさ最優先)
テキスト中心のサイトで、読みやすさ を最大化するための追加設定です。
/* ============================================
base-blog.css - ブログ向け追加設定
============================================ */
/* CSS Variables(カスタマイズしやすく)
-------------------------------------------- */
:root {
--color-text: #111;
--color-muted: #666;
--max-width: 68ch; /* 読みやすい行長 */
}
/* Body
-------------------------------------------- */
body {
color: var(--color-text);
}
/* Main content(中央寄せ + 最大幅)
-------------------------------------------- */
main {
max-width: var(--max-width);
margin-inline: auto;
padding: 24px 16px;
}
/* Paragraphs(段落間隔)
-------------------------------------------- */
p + p {
margin-top: 1em;
}
/* Headings(見出し余白)
-------------------------------------------- */
h1 {
margin: 0 0 0.6em;
}
h2 {
margin: 1.6em 0 0.6em;
}
h3 {
margin: 1.2em 0 0.5em;
}
/* Lists(リストのインデント)
-------------------------------------------- */
ul,
ol {
padding-left: 1.25em;
}
3-3. LP 向け(縦リズムと CTA 重視)
LP で重要になる 縦のリズム と CTA ボタン の設定です。
/* ============================================
base-lp.css - LP向け追加設定
============================================ */
/* CSS Variables
-------------------------------------------- */
:root {
--radius: 14px;
}
/* Links(リンクの装飾)
-------------------------------------------- */
a {
color: inherit;
text-underline-offset: 0.2em;
}
/* Buttons(CTA ボタン)
-------------------------------------------- */
button,
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 12px 18px;
border-radius: var(--radius);
border: 1px solid currentColor;
background: transparent;
cursor: pointer;
transition: opacity 0.2s ease;
}
button:hover,
.btn:hover {
opacity: 0.8;
}
3-4. フォーム / 管理画面向け(入力の統一)
フォームが多い案件や管理画面で、入力要素を統一 するための設定です。
/* ============================================
base-form.css - フォーム向け追加設定
============================================ */
/* Text inputs
-------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="search"],
select,
textarea {
width: 100%;
padding: 12px 14px;
border: 1px solid #ccc;
border-radius: 12px;
background: #fff;
}
/* Textarea
-------------------------------------------- */
textarea {
min-height: 140px;
resize: vertical;
}
/* Submit button
-------------------------------------------- */
button[type="submit"] {
padding: 12px 18px;
border-radius: 14px;
border: 0;
background: #111;
color: #fff;
cursor: pointer;
transition: opacity 0.2s ease;
}
button[type="submit"]:hover {
opacity: 0.85;
}
/* Focus states
-------------------------------------------- */
input:focus,
select:focus,
textarea:focus {
border-color: #111;
outline: none;
box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}
4. WordPress 実装 ― どこにどう入れるか
WordPress 案件では、「どこに Reset CSS を入れるか」で事故率が変わります。
結論から言うと、「子テーマ + wp_enqueue_style」が一番安全 です。
4-1. まず結論:おすすめの入れ方
| 環境 | おすすめの方法 |
|---|---|
| 子テーマあり | functions.php で wp_enqueue_style を使って読み込む |
| Cocoon 使用 | Cocoon 子テーマの functions.php に追加(上と同じ) |
| ブロックエディタ | フロントに加えて、エディタ側にも同じベースを当てる |
| クラシックエディタ | add_editor_style() でエディタに当てる |
4-2. パターン別:実装コード
パターン A:子テーマで Reset + base.css を読み込む(本命)
最も汎用的で安全なパターンです。
ファイル構成
/your-child-theme/
├── functions.php
├── style.css
└── assets/
└── css/
├── reset.css ← normalize.css などを保存
└── base.css ← 自前の base.css
functions.php
<?php
/**
* Reset CSS + base.css をフロントに読み込む
*/
add_action('wp_enqueue_scripts', function () {
// 1. Reset CSS(先に読み込む)
wp_enqueue_style(
'reset',
get_stylesheet_directory_uri() . '/assets/css/reset.css',
[], // 依存なし
'1.0.0'
);
// 2. base.css(Reset の次に読み込む)
wp_enqueue_style(
'base',
get_stylesheet_directory_uri() . '/assets/css/base.css',
['reset'], // reset の後に読み込む
'1.0.0'
);
// 3. テーマの style.css(最後に読み込む)
wp_enqueue_style(
'theme-style',
get_stylesheet_uri(),
['base'], // base の後に読み込む
'1.0.0'
);
});
💡 ポイント
第3引数の配列(['reset']、['base'])で依存関係を指定すると、読み込み順序が保証されます。
パターン B:CDN から読み込む(ファイルを置きたくない場合)
Reset CSS をファイルで管理したくない場合は、CDN から直接読み込むこともできます。
functions.php
<?php
add_action('wp_enqueue_scripts', function () {
// 1. sanitize.css を CDN から読み込む
wp_enqueue_style(
'sanitize',
'https://unpkg.com/sanitize.css',
[],
null // CDN なのでバージョン指定なし
);
// 2. 自前の base.css
wp_enqueue_style(
'base',
get_stylesheet_directory_uri() . '/assets/css/base.css',
['sanitize'],
'1.0.0'
);
});
パターン C:ブロックエディタ(Gutenberg)にも適用する
ブロックエディタを使っている場合、編集画面のスタイルは別管理 です。
フロントだけ整えても、編集画面では見た目が違う…ということになりがち。編集体験を揃えたいなら、エディタ側にも CSS を当てましょう。
ファイル構成(追加)
/your-child-theme/
└── assets/
└── css/
├── reset.css
├── base.css
└── editor.css ← エディタ用(追加)
functions.php(追加)
<?php
/**
* ブロックエディタにも CSS を適用
*/
add_action('enqueue_block_editor_assets', function () {
// Reset
wp_enqueue_style(
'editor-reset',
get_stylesheet_directory_uri() . '/assets/css/reset.css',
[],
'1.0.0'
);
// エディタ用 base
wp_enqueue_style(
'editor-style',
get_stylesheet_directory_uri() . '/assets/css/editor.css',
['editor-reset'],
'1.0.0'
);
});
editor.css(例:フォントと行間だけ揃える)
/* ============================================
editor.css - ブロックエディタ用
============================================ */
.editor-styles-wrapper {
line-height: 1.6;
font-family:
system-ui,
-apple-system,
"Segoe UI",
Roboto,
"Helvetica Neue",
Arial,
"Noto Sans",
sans-serif;
}
/* 見出しの余白(フロントと揃える)*/
.editor-styles-wrapper h1 {
margin: 0 0 0.6em;
}
.editor-styles-wrapper h2 {
margin: 1.6em 0 0.6em;
}
パターン D:クラシックエディタの場合
クラシックエディタ(TinyMCE)を使っている場合は、add_editor_style() を使います。
functions.php
<?php
add_action('after_setup_theme', function () {
add_editor_style([
'assets/css/reset.css',
'assets/css/editor.css',
]);
});
⚠️ 注意
クラシックエディタは環境によって効き方が違います。「フォントと行間だけ揃える」くらいが安全です。
4-3. Cocoon を使っている場合
Cocoon は子テーマ運用が前提に近いテーマです。
Cocoon 子テーマの functions.php に、パターン A または B のコードをそのまま追加 すれば OK。
「追加 CSS」機能(管理画面から入力)でも可能ですが、ファイルで管理した方が Git 管理しやすく、メンテナンス性も高いです。
まとめ ― Reset は「選ぶ」より「運用設計」で勝つ
長い記事を最後まで読んでいただき、ありがとうございました。
後編の要点を整理します。
Reset CSS は「入れて終わり」ではありません。
- 画面タイプによって効き方が違う
- ブログ → 余白と行間のリズム
- LP → 統一感と CTA
- フォーム → フォント継承とアクセシビリティ
- 管理画面 → UI の粒度
- 本当に差が出るのは Reset の「後」
- base.css の設計
- フォームコンポーネントの作り込み
- 二重適用の回避(フレームワークとの衝突)
- WordPress では「どこに入れるか」も重要
- 子テーマ +
wp_enqueue_styleが基本 - ブロックエディタを使うなら、エディタ側にも適用
- 子テーマ +
Reset CSS は、派手な機能ではありません。でも、プロジェクトの土台 です。
ここを丁寧に設計するかどうかで、その後の開発体験が大きく変わります。
ぜひこの記事のテンプレートを活用して、あなたのプロジェクトに合った「Reset + base.css」を構築してください。
前編に戻る
Reset CSS の基本概念・種類の違い・主要ライブラリの特徴と選び方は、前編で解説しています。
→ 前編へ



コメント