この記事でわかること
✅ 2025年最新のReset CSSトレンド
✅ Josh’s Custom CSS Resetとは何か
✅ おすすめのReset CSS 5選と使い分け
✅ box-sizing: border-box; の重要性
✅ カスケードレイヤー(@layer)の活用法
✅ CDN vs ローカルファイルの選び方
✅ よくある質問10選(実装の悩みを解決)
はじめに:
2025年のReset CSS事情 Reset CSSは、ブラウザごとのデフォルトスタイルを統一し、Web制作でのスタイル崩れを防ぐ重要な役割を果たします。 しかし、2026年現在、Reset CSSの考え方は大きく変わってきました。 従来の「すべてをリセットする」アプローチから、「必要最小限のリセット+モダンな機能の活用」へとパラダイムシフトしています。 本記事では、2026年の最新トレンドを反映したReset CSSを5つ厳選し、それぞれの特徴や導入方法を徹底解説します。
2025年のReset CSS 新潮流
従来との3つの大きな違い
1. 全称セレクタ
( * {})による一括リセットは非推奨に
【従来(2010年代)】
*,
*::before,
*::after {
margin: 0;
padding: 0;
}
【問題点】
・パフォーマンスに悪影響 ・アクセシビリティの損失(フォーム要素などの有用なスタイルまで無効化) ・保守性の低下 【2025年のアプローチ】 必要な要素にのみ適用する選択的リセット
2. カスケードレイヤー(@layer)の活用
2025年の新機能「@layer」を使うことで、Reset CSSの優先順位を明確に管理できます。
@layer reset, base, components;
@layer reset {
/* Reset CSSのコード */
}
@layer base {
/* ベーススタイル */
}これにより、詳細度の衝突を防ぎ、大規模プロジェクトでも管理が容易になります。
3. 「リセット不要論」の登場 IE11のサポート終了(2022年6月)以降、モダンブラウザ(Chrome、Edge、Safari、Firefox)の標準化が進み、ブラウザ間の差異は大幅に縮小しました。 そのため「もうReset CSSは不要では?」という意見も出ていますが、実務では依然として有用です。
理由:
・微細な差異は残っている(特にフォーム要素)
・box-sizing: border-box; の一括設定が便利 ・チーム開発でのスタイル統一に役立つ
box-sizing: border-box; の重要性
デフォルトの問題点 CSSのデフォルト設定では box-sizing: content-box; となっており、width/heightにpadding・borderが含まれません。
【問題のある例】
.box {
width: 300px;
padding: 20px;
border: 5px solid #000;
}
/* 実際の横幅 = 300px + 20px×2 + 5px×2 = 350px */
幅300pxのつもりが、実際には350pxになってしまいます!
------------------------------------------------
border-box で解決
*,
*::before,
*::after {
box-sizing: border-box;
}
.box {
width: 300px; /* padding・borderを含めて300px */
padding: 20px;
border: 5px solid #000;
}
/* 実際の横幅 = きっちり300px! */
box-sizing: border-box; のメリット:
✅ 見た目通りのサイズ指定ができる
✅ レスポンシブデザインが簡単になる
✅ 計算ミスによるレイアウト崩れを防げる
✅ CSSコードがシンプルになる
✅ パーセント指定との相性が抜群 特にレスポンシブデザインでは必須の設定です!
【2025年最新】おすすめReset CSS 5選
1. Josh’s Custom CSS Reset ★★★★★
(最もモダン・初心者に最推奨) 2025年現在、最も注目されているReset CSSです。
特徴:
・2025年3月に最終更新(最新ブラウザに完全対応)
・たった9つのルールでシンプル
・「なぜこの設定が必要か」が論理的に説明されている
・教育的な設計で、CSSの理解が深まる
・interpolate-sizeプロパティなど最新CSS機能を活用
重要:CDNではなくコピペで使うのが標準 Josh’s Custom CSS Resetは、GitHubやCDNで配布されていません。 公式サイトからコードをコピーして、プロジェクトのCSSファイルに直接貼り付けるのが正しい使い方です。
【コード(2025年3月版)】
/* Josh's Custom CSS Reset
https://www.joshwcomeau.com/css/custom-css-reset/
*/
*, *::before, *::after {
box-sizing: border-box;
}
*:not(dialog) {
margin: 0;
}
@media (prefers-reduced-motion: no-preference) {
html {
interpolate-size: allow-keywords;
}
}
body {
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
img, picture, video, canvas, svg {
display: block;
max-width: 100%;
}
input, button, textarea, select {
font: inherit;
}
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
p {
text-wrap: pretty;
}
h1, h2, h3, h4, h5, h6 {
text-wrap: balance;
}
#root, #__next {
isolation: isolate;
}公式サイト: https://www.joshwcomeau.com/css/custom-css-reset/
向いているプロジェクト:
・2025年以降の新規プロジェクト
・モダンブラウザのみ対応
・CSSを深く理解したい初心者
・React/Nextjsプロジェクト(#root, #__next対応)
2. destyle.css ★★★★★(日本で大人気・強力なリセット)
日本のWeb制作現場で非常に人気の高いReset CSSです。
特徴:
・デフォルトスタイルをほぼ完全にリセット
・h1〜h6がすべて同じスタイルになる(徹底的なリセット)
・日本語の解説が豊富
・2025年1月現在も活発に更新
・MITライセンスで商用利用可能
CDN読み込み:
<link rel="stylesheet" href="https://unpkg.com/destyle.css@4.0.1/destyle.min.css">
ダウンロード: https://github.com/nicolas-cusan/destyle.css
向いているプロジェクト:
・ゼロからCSSを書きたい
・デザインの自由度を最大限に
・日本語の情報が欲しい
・完璧主義なデザイナー
注意点:
・リセットが強力すぎて、フォーム要素のスタイルまで消える
・スタイル適用し忘れに注意(特にinput, button)
3. Normalize.css ★★★★☆(定番・最も安定)
最も歴史があり、実績豊富なReset CSSです。
特徴:
・GitHubスター5万以上
・ブラウザの有用なスタイルは残す
・デフォルトスタイルを「リセット」ではなく「整える」
・情報量が圧倒的に多い
・トラブルシューティングが容易
CDN読み込み:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css">公式サイト: https://github.com/necolas/normalize.css 向いているプロジェクト: ・初めてのWeb制作 ・安定性・実績重視 ・チーム開発 ・長期運用サイト
注意点: ・box-sizing: border-box; は含まれていない(自分で追加が必要)
追加コード:
*,
*::before,
*::after {
box-sizing: border-box;
}
4. Sanitize.css ★★★★☆(Normalize.cssの進化版)
Normalize.cssをベースに、よりモダンな機能を追加したReset CSSです。
特徴:
・Normalize.cssの後継的な位置づけ
・アクセシビリティを考慮
・モダンブラウザに最適化
・セマンティックHTML対応
CDN読み込み:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sanitize.css"> 公式サイト: https://github.com/csstools/sanitize.css
向いているプロジェクト:
・モダンブラウザのみ対応
・アクセシビリティ重視
・最新のWeb標準に準拠したい
5. ress.css ★★★☆☆(Normalize + カスタマイズ)
Normalize.cssをカスタマイズして、より使いやすくしたReset CSSです。
特徴:
・Normalize.cssベース
・marginとpaddingを全リセット
・box-sizing: border-box; が標準装備
・カーソルやアウトラインも調整済み
・日本でも人気
CDN読み込み:
<link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css">公式サイト: https://github.com/filipelinhares/ress
向いているプロジェクト:
・Normalizeベースが良いが、もう少しリセットしたい
・box-sizingを自分で書きたくない
・バランス型を求める
【参考】もう使わないReset CSS
以下のReset CSSは歴史的には重要ですが、2025年では推奨されません: Eric Meyer’s Reset CSS ・2011年以降更新なし(14年以上放置)
・モダンブラウザ非対応
・box-sizing: border-box; なし
・教育目的のみ CDN: https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css
使用は非推奨:新規プロジェクトでは上記5つのいずれかを選びましょう。
導入手順【3ステップで完了】
Step 1: 使用するReset CSSを選ぶ
【初心者におすすめの選び方】
完全初心者 → Josh’s Custom CSS Reset
日本語情報重視 → destyle.css
安定性重視 → Normalize.css
バランス型 → ress.css
アクセシビリティ重視 → Sanitize.css
Step 2: HTMLの<head>内に読み込む
【パターン1: CDNを使う場合(destyle.css の例)】
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Reset CSS Example</title>
<!-- ①Reset CSSを読み込む(最初に!) -->
<link rel="stylesheet" href="https://unpkg.com/destyle.css@4.0.1/destyle.min.css">
<!-- ②自分のCSSを読み込む(Reset CSSの後に!) -->
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
重要:Reset CSSは必ず自分のCSSより先に読み込んでください!
【パターン2: コピペで使う場合(Josh’s Custom CSS Reset)】
style.cssの先頭に直接貼り付け:
/* style.css */
/* Josh's Custom CSS Reset */
*, *::before, *::after {
box-sizing: border-box;
}
/* ...残りのコードを貼り付け... */
/* ここから自分のスタイル */
body {
font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', sans-serif;
line-height: 1.6;
color: #333;
}Step 3: box-sizingの確認と追加設定
Normalize.cssを使う場合のみ、以下を追加:
*,
*::before,
*::after {
box-sizing: border-box;
}
他のReset CSSは標準で含まれているので不要です。
【2025年版】カスケードレイヤーの活用
@layer とは? 2025年の最新CSS機能で、スタイルの優先順位を明示的に管理できます。
新しい概念の説明: カスケードレイヤーは、CSSの「詳細度」の問題を解決する新機能です。 従来は!importantやセレクタの組み合わせで管理していた優先順位を、 レイヤーという単位で整理できます。
基本的な使い方
/* レイヤーの宣言(順番が重要) */
@layer reset, base, components, utilities;
/* Reset CSSをresetレイヤーに配置 */
@layer reset {
*,
*::before,
*::after {
box-sizing: border-box;
}
* {
margin: 0;
}
}
/* ベーススタイル */
@layer base {
body {
font-family: sans-serif;
line-height: 1.6;
}
}
/* コンポーネント */
@layer components {
.button {
padding: 10px 20px;
background: #007bff;
}
}
メリット:
✅ 詳細度の衝突を完全に回避
✅ CSSの保守性が劇的に向上
✅ チーム開発でのルールが明確に
✅ !important の乱用を防げる ブラウザ対応状況(2025年1月):
・Chrome 99+ ✅ ・Edge 99+ ✅ ・Safari 15.4+ ✅ ・Firefox 97+ ✅ → 主要ブラウザすべて対応済み!
実務Tips
・ベストプラクティス CDNの利点と注意点 メリット:
・導入が簡単(コピペだけ)
・ブラウザキャッシュが効く可能性
・ファイル管理が不要
・バージョンアップが容易
デメリット:
・CDNサーバーがダウンすると読み込めない
・オフライン環境では動作しない
・微調整ができない
・外部依存になる
対策:重要な案件ではローカルファイル化 プロジェクト構成例:
project/
├── css/
│ ├── reset.css ← ダウンロードして配置
│ ├── base.css ← ベーススタイル
│ └── style.css ← メインスタイル
└── index.html
HTML読み込み順:
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/style.css">CDN使用時のバージョン固定
【❌ 良くない例】
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sanitize.css">
<!-- 常に最新版 → 予期せぬ変更のリスク --> 【✅ 推奨】
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sanitize.css@13.0.0">
<!-- バージョン固定 → 安定 --> バージョンを固定しないと、CDN側の更新で突然スタイルが変わる可能性があります。
フォーム要素のスタイル調整
destyle.cssやJosh’s Custom CSS Resetを使うと、フォーム要素のスタイルもリセットされます。
必要なスタイルを再定義:
/* フォント継承 */
input,
textarea,
select,
button {
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
/* 基本スタイル */
input[type="text"],
input[type="email"],
input[type="password"],
textarea {
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
width: 100%;
background: #fff;
}
/* ボタンスタイル */
button {
padding: 10px 20px;
background: #007bff;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
button:hover {
background: #0056b3;
}
/* フォーカス時 */
input:focus,
textarea:focus {
outline: 2px solid #007bff;
outline-offset: 2px;
}
レスポンシブ対応の基本設定
Reset CSSと併せて設定すると良い項目:
/* 画像・動画のレスポンシブ対応 */
img,
video,
iframe {
max-width: 100%;
height: auto;
display: block;
}
/* フォントサイズの基準設定(rem単位のベース) */
html {
font-size: 16px;
}
/* スマホ対応 */
@media (max-width: 768px) {
html {
font-size: 14px;
}
}
/* タブレット対応 */
@media (min-width: 769px) and (max-width: 1024px) {
html {
font-size: 15px;
}
}
/* 大画面対応 */
@media (min-width: 1921px) {
html {
font-size: 18px;
}
}
WordPressでの使い方
方法1: functions.phpで読み込む(推奨)
function add_reset_css() {
wp_enqueue_style(
'destyle',
'https://unpkg.com/destyle.css@4.0.1/destyle.min.css',
array(),
'4.0.1'
);
}
add_action('wp_enqueue_scripts', 'add_reset_css', 1);
// 優先度1で最初に読み込み
方法2: header.phpに直接記述
<?php wp_head(); ?>の前に追加:
<link rel="stylesheet" href="https://unpkg.com/destyle.css@4.0.1/destyle.min.css">
注意:テーマによってはすでにReset CSSが組み込まれている場合があります。
開発者ツール(F12キー)で<head>内を確認してから導入しましょう。よくある質問(FAQ)
Reset CSSとNormalize.css、どちらを使うべきですか?
A. 2026年の推奨順位は以下の通りです。
1位: Josh’s Custom CSS Reset(最もモダン)
2位: destyle.css(徹底的にリセットしたい)
3位: Normalize.css(安定性重視)
ゼロからデザインする
→ Josh’s Custom CSS Reset または destyle.css
ブラウザの標準スタイルを活かす
→ Normalize.css または Sanitize.css
迷った場合
→ Josh’s Custom CSS Reset(2026年のベストプラクティス)
box-sizingをborder-boxにすると何が良いのですか?
A. 直感的なサイズ指定ができるようになります。
【デフォルト(content-box)の場合】
.box {
width: 300px;
padding: 20px;
border: 5px solid #e0e0e0;
}
/* 実際の幅 = 340px になる */
/* → レイアウトが崩れる! */【border-boxの場合】
.box {
width: 300px;
padding: 20px;
border: 5px solid #e0e0e0;
}
/* 実際の幅 = 300px(padding・border込み) */
/* → 見た目通りのサイズ! */特にレスポンシブデザインでは、パーセント指定と組み合わせると威力を発揮します。
2026年でもReset CSSは必要ですか?
A. 必要です。ただし、必要性は以前より下がっています。
【必要な理由】
- フォーム要素の差異は依然として大きい
- box-sizing: border-box; の一括設定が便利
- チーム開発でのスタイル統一
- マージン・パディングのばらつき解消
【不要なケース】
- 個人の超小規模サイト
- プロトタイプ・学習用
- 特定ブラウザのみ対応
結論:実務では使った方が無難です。
CDNを使うときの注意点は?
A. 以下の3点に注意してください。
1. CDNがダウンすると読み込めない
→ 重要案件ではローカルファイル化
2. バージョンを固定する
<!-- ❌ NG -->
<link rel="stylesheet" href="https://unpkg.com/destyle.css">
<!-- ✅ OK -->
<link rel="stylesheet" href="https://unpkg.com/destyle.css@4.0.1">3. HTTPS接続を使う
http:// ではなく https:// を使いましょう
Josh’s Custom CSS ResetにCDNはないのですか?
A. 意図的にCDNで配布していません。
理由:
- コードが短いのでコピペで十分
- プロジェクトごとにカスタマイズして使うことを想定
- 「なぜこの設定が必要か」を理解して使ってほしい
使い方:
公式サイトからコードをコピーして、CSSファイルの先頭に貼り付けるだけです。
Reset CSSを使うとフォームのデザインが崩れるのはなぜ?
A. ブラウザのデフォルトスタイルまでリセットされるためです。
destyle.cssやJosh’s Custom CSS Resetは、フォーム要素のスタイルも積極的にリセットします。
対策:必要なスタイルを再定義
input[type="text"],
input[type="email"],
textarea {
padding: 8px 12px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
button {
padding: 10px 20px;
background: #007bff;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}これが面倒な場合は、Normalize.cssを選びましょう(フォームの基本スタイルは残ります)。
WordPressで使う場合の注意点は?
A. テーマによってはすでにReset CSSが組み込まれています。
確認方法:
- ブラウザの開発者ツールを開く(F12キー)
- Elementsタブで<head>内を確認
- normalize.css、reset.css、destyle.cssなどが読み込まれていないかチェック
重複読み込みは避けましょう:
- スタイルの衝突
- 読み込み時間の増加
- 予期せぬ表示崩れ
人気WordPressテーマの多くは、すでにNormalize.cssを内包しています。
カスケードレイヤー(@layer)は使うべきですか?
A. 2026年以降の新規プロジェクトでは積極的に使いましょう。
メリット:
- 詳細度の問題を根本的に解決
- CSS設計が明確になる
- チーム開発でのルールが統一しやすい
ブラウザ対応:
主要ブラウザすべて対応済み(2026年1月時点)
基本的な使い方:
@layer reset, base, components;
@layer reset {
/* Reset CSS */
}
@layer base {
/* ベーススタイル */
}Reset CSSは読み込み順序が重要と聞きましたが?
A. はい、非常に重要です!
正しい順序:
<!-- 1. Reset CSS(最初) -->
<link rel="stylesheet" href="reset.css">
<!-- 2. ベーススタイル -->
<link rel="stylesheet" href="base.css">
<!-- 3. メインスタイル -->
<link rel="stylesheet" href="style.css">間違った順序:
<!-- ❌ これだとReset CSSが自分のスタイルを上書きしてしまう -->
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="reset.css">CSSは後から読み込まれたものが優先されるため、Reset CSSは必ず最初に読み込みます。
全称セレクタ( * {})は使わない方がいいですか?
A. 2026年では使い方に注意が必要です。
【従来の書き方(非推奨)】
* {
margin: 0;
padding: 0;
}【問題点】
- すべての要素に適用されるため、パフォーマンスに影響
- フォーム要素などの有用なスタイルまで消える
- アクセシビリティの問題
【2026年の推奨】
Josh’s Custom CSS Resetのように、必要な要素のみリセット:
*:not(dialog) {
margin: 0;
}box-sizing だけは全称セレクタでOK:
*,
*::before,
*::after {
box-sizing: border-box;
}まとめ
この記事のポイント
✅ 2025年のReset CSSは「選択的リセット」が主流
✅ Josh’s Custom CSS Resetが最もモダンで推奨
✅ destyle.cssは日本で大人気(徹底的なリセット)
✅ Normalize.cssは安定性重視の定番
✅ box-sizing: border-box; は必須設定
✅ カスケードレイヤー(@layer)の活用で保守性向上
✅ 全称セレクタ( * {})の一括リセットは非推奨に
おすすめのReset CSS(再掲)
【2025年の推奨順位】
1位: Josh’s Custom CSS Reset → 最もモダン・教育的・初心者に最適
2位: destyle.css → 徹底的なリセット・日本で人気
3位: Normalize.css → 実績豊富・安定性重視
4位: Sanitize.css → Normalizeの進化版・アクセシビリティ重視
5位: ress.css → Normalizeベースのカスタマイズ版
今すぐできるアクション
1. Josh’s Custom CSS Resetのコードをコピー (https://www.joshwcomeau.com/css/custom-css-reset/)
2. 自分のCSSファイルの先頭に貼り付け
3. ブラウザで表示を確認
4. 必要に応じてカスタマイズ
たったこれだけで、2025年の最新トレンドに対応したReset CSSが導入できます!
次のステップ Reset CSSを導入したら、
次はこちらの記事もチェック
・Gridレイアウト徹底解説|基本から応用までの完全ガイド
・Flexbox Generator|初心者でも簡単!レスポンシブレイアウト作成ガイド
・レスポンシブデザイン入門
・カスケードレイヤー(@layer)徹底解説 (近日公開)
この記事が役に立ったら、SNSでシェアしていただけると嬉しいです!