• HOME > 
  • CSS > 
  • リセットCSSの使い方

リセットCSSの使い方

投稿日:

このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。

カテゴリー記事のアイキャッチ画像
広告
広告

リセットCSSとは?

リセットCSSとは何かを説明するためには、まずデフォルトCSSの存在について知って頂く必要があります。

例として、HTMLファイルにh1・h2・pタグだけを記述してブラウザで表示して見ましょう。

タグごとの表示の違い

CSSを読み込ませていない(何も指定していない)にも関わらずスタイルが適用され、h1タグ・h2タグ・pタグを比較してみると、勝手にh1h2タグは太字ですが、pタグはそうではありません。h1タグとh2タグを比べても、h1タグの方が大きく表示されています。

ブラウザははじめからデフォルトCSSが設定されている

これは、ブラウザ自身が持つCSSのスタイルが適用された状態で、そのCSSはデフォルトCSSと呼ばれています。

デベロッパーツールで確認して見ましょう。

「user agent stylesheet」と書かれているものがデフォルトCSS

Google Chromeのデベロッパーツールでは、要素に指定されているデフォルトCSSのプロパティは斜体で表示され編集できない状態になっており、右上に「user agent stylesheet」と表記されています。

デベロッパーツールで確認

ここでようやくこのページの本題に戻ります。

リセットCSSとはデフォルトCSSを打ち消すためのCSS

リセットCSSは、ブラウザのデフォルトCSSによってはじめから指定いされているスタイルをリセットする(打ち消す)ために使うCSSです。

デフォルトCSSをリセットする理由

ブラウザがわざわざ設定してくれているデフォルトCSSを、なぜ打ち消してリセットする必要があるのでしょうか?

デフォルトCSSはブラウザごとに異なるので注意

デフォルトCSSのスタイルはブラウザごとに違うため、それぞれで異なる表示がされてしまう恐れがあります。

例えば、下図はどちらも同じh1タグをデフォルトCSSのみで表示させていますが、左側のIEではアルファベットが明朝体で表示されているのに対し、右側のGoogle Chromeではゴシック体で表示されています。

プレビュー

ChromeとIEの表示の違い

このようにデフォルトCSSはブラウザごとに意図しない表示の違いを生じさせてしまいます。

リセットCSSでデフォルトCSSによるブラウザごとの差異を防ぐ

こういったデフォルトCSSによる表示の違いを防ぐために使用するCSSがリセットCSSです。

リセットCSSを読み込ませることで、あらかじめデフォルトCSSが反映されないようにでき、どのブラウザでも同じスタイルを適用させて差異なく表示することが可能です。

リセットCSSを使用するメリット

リセットCSSを使用した方が良い理由はブラウザの差異を無くすだけではありません。

まずは下図をご覧ください。ヘッダーを画面横幅いっぱいに表示させたい状況であるとします。

headerにmarginなどは指定していませんが、ウインドウの端に余白ができてしまっています。

ヘッダーを横幅いっぱいに表示させたい

デベロッパーツールを確認するとChromeではデフォルトCSSによりbodyにmargin:8pxが適用されており、いくらheaderのスタイルを修正しても余白がうまれていたのです。

ChromeではデフォルトCSSによりbodyにmargin

この場合だけであればbodyに「margin:0」を指定して上書きすれば良いのですが、このようにデフォルトCSSによる指定は至る所に存在しています。

例えばcolorやfont-sizeであれば誰しもが通常のスタイリングの過程で指定することがほとんどだと思うので意識せずとも上書きできますが、デフォルトCSSで勝手に太字にされていたりすると、わざわざfont-weightを指定して打ち消すという余計な手間が発生します。

スタイリングしていく過程で見つかったものをひとつひとつ修正していく作業はとてもわずらわしいです。

リセットCSSを使えばスタイルの指定がスムーズに

リセットCSSを使って前もってデフォルトCSSを打ち消しておけば、その都度その都度修正する作業が発生せずにスムーズにスタイリングを進めることが可能です。

リセットCSSには作業効率化というメリットもあると言えるでしょう。

リセットCSSの使い方

それだと結局リセットCSSを作るために時間が掛かるという心配がありますか?

リセットCSSはインターネット上に公開されているもの使わせてもらうので簡単です。

リセットCSSの使い方はとても簡単です。ゼロから作成するのではなくインターネット上に公開されているものをコピーし、通常のstylesheetと同様にサイトに読み込んで使用します。

リセットCSSを読み込ませる

「destyle.css」というリセットCSSを例に、サイトに読み込ませる方法を説明します。

ファイルの作成やサーバーへのアップロードなどの過程で何か間違えると予期せぬエラーを引き起こす場合があります。サイトのバックアップを取ったうえ、自己責任でご使用ください。

リセットCSSを取得する

GitHubのdestyle.cssのぺージを開き、「destyle.css」をクリックします。

表示されたソースコードを全てコピーしてテキストファイルに貼り付け、「destyle.css」という名前で保存します。

サーバーにアップロードする。

作成したdestyle.cssをFTPソフト等を使用してサーバーにアップロードします。

ワードプレスであれば使用しているテーマフォルダ内のCSSフォルダに入れて下さい。

style.cssより前に読み込ませる

HTMLファイルに記述して、アップロードしたdestyle.cssを読み込みます。

下記のように自身がスタイリングを行うstyle.cssよりも前に読み込ませてください。

HTML

<head>
    -省略--
<link rel="stylesheet" href="destyle.css">
<link rel="stylesheet" href="style.css">
    -省略-
</head>

順番を間違えると自身が追記したスタイルまでもがリセットCSSによって上書きされてしまいます。

サイトの表示を確認すると、先程のbodyのmarginやh1等のスタイルが全て無効化されています。

サイトの表示を確認

リセットCSSの種類

前述の「destyle.css」をはじめとして、インターネット上にはいくつものリセットCSSが公開されています。

リセットCSSは「すべてリセットした状態にするもの」と「新しいスタイルを適用した状態にするもの」の2パターンに大きく分けられます。

前者はほぼすべてをリセットしているため、まっさらな状態から始められますが、全てのスタイルを自身で一から書かなければならないため手間が掛かるというデメリットもあります。一方後者はデフォルトCSSのスタイルをブラウザごとの差異がないように調整したものになります。

それぞれの特徴を理解して、使いやすいものを選んでください。

各表示例は、全て共通して以下のコードを表示させたものです。

HTML

<h1>これはh1タグです。</h1>
<h2>これはh2タグです。</h2>
<p>これはpタグです。</p>
<ul>
<li>これはリスト項目1です。</li>
<li>これはリスト項目2です。</li>
</ul>
<input type="text" placeholder="これはテキストボックスです。">
<input type="radio">これはラジオボタンです。
<select><option>これはセレクトボックスです。</option></select>
<input type="submit" value="これは送信ボタンです。">

destyle.css

ほぼすべてをリセットされているので、まっさらな状態からスタイルを指定していくことが可能です。

destyleの表示例

inputやselectによるフォームの部品のスタイルまで完全に無効化され、一から作らなければならない点などに注意して下さい。

https://github.com/nicolas-cusan/destyle.css

Normalize.css

デフォルトCSSを打ち消したうえで、新しいスタイルが追加されています。

Normalizeの表示例

リセットというよりも、ブラウザによる差異を無くしてスタイルを統一させるという方があっているかもしれません。

https://github.com/necolas/normalize.css/

sanitize.css

Normalize.cssと同様に新しいスタイルが追加されています。

sanitizeの表示例

表示例を見る限りではnormalize.cssとの違いが判りませんが、こちらには「box-sizing:border-box;」が指定されているのでレスポンシブ化もしやすくなっています。

コード内のborder-boxの部分

「box-sizing:border-box」は要素のwidthやheightにborderの幅まで含ませるという効果があります。これにより、幅の指定がしやすくなるのでレスポンシブ化には欠かせません。

https://github.com/csstools/sanitize.css リンク先のサムネイル
CSSのbox-sizingの使い方

box-sizingプロパティは、要素の幅(width)と高さ(height)にborderの太さとpaddingの余白のサイズを含めるかどうかを指定するために使用します・・・

いずれの場合もそのまま使うのではなく、不要を箇所は削除したり書き換えたりして使いやすいようにカスタマイズして使います。

まとめ

現在ではサイトのレスポンシブ化が必須とされているため、あらかじめ必要な記述が施されているsanitize.cssが多く利用されているようです。

関連する記事

サムネイル

CSSでテーブルの先頭行や先頭列を固定する方法【sticky……

2024年04月12日
CSSのpositionプロパティの「sticky」を使えば、CSSだけでテーブルの行も列も簡単に固定することができるのでご紹介します。情報量の多い表を作る場合は、スクロールした時に項目名などの行や列は固定させておいたほうが見やすくなります。
サムネイル

CSSのwhite-spaceプロパティの使い方【半角スペー……

2024年03月07日
SSのwhite-spaceは、テキストにおける半角スペース・改行・タブの扱いと折り返しの有無を設定するプロパティです。
サムネイル

CSSのメディアクエリでスマホでのホバーの挙動の対策を行う【……

2023年10月01日
最終更新日:2023年09月28日
要素をタップしたときにホバー時のスタイルが適用され続けるという経験はありませんか?CSSだけで簡単にスマホでの疑似要素「hover」の挙動の対策を行う方法をご紹介します。
サムネイル

CSSの疑似クラス「:focus」の使い方【focus-wi……

2023年05月01日
最終更新日:2023年05月31日
CSSでは疑似クラスである「:focus」を用いることで、フォーカス時のスタイルを設定することが可能です。一方「:focus-within」は、その要素自体もしくは子要素にフォーカスがある状態で有効になります。
サムネイル

CSSのclamp()・max()・min()の使い方【プロ……

2023年01月16日
最終更新日:2023年03月10日
clamp()・max()・min()はCSSのプロパティの値の指定に利用できる比較関数です。複数の値を比較し1つの値を導きだし上限や下限を設定できます。
サムネイル

CSSのfont-feature-settingsの使い方【……

2023年01月16日
最終更新日:2023年03月10日
font-feature-settingsは、文字本来のサイズに応じてフォントの文字詰め(カーニング)を設定するためのプロパティです。
サムネイル

CSSのletter-spacingで文字間隔を設定【中央寄……

2023年01月16日
最終更新日:2023年03月10日
letter-spacingは、テキストの文字と文字との間隔を設定するためのプロパティです。文字と文字の間を狭めたり、広げたりしてバランスを整えることができます。