Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8933

リセットCSS、ノーマライズCSS、サニタイズCSSの違い

$
0
0

はじめに、デフォルトCSSについて

HTMLのタグには、デフォルトCSSが設定されています。
例えば<h1>タグはfont-sizeを設定したわけでもないのに大きくボールドで表示されます。
<p>タグも同様にmargin系のプロパティを設定していないのに下に空きができます。
CSSでスタイルを設定しようとすると、思ったとおりの見栄えが実現できないことがよくありますが、理由の1つがこのデフォルトCSSです。
デフォルトCSSの挙動は把握する必要はありますが、一方でデフォルトCSSはブラウザごとに微妙に設定が違います。
これをある程度揃える目的でリセットCSS、ノーマライズCSS、サニタイズCSSが存在します。

デフォルトCSSを揃えるCSS

リセットCSS

デフォルトCSSをほぼ全て初期化するCSS。例えば以下です。

  • <h1>〜<h6>は全て同じフォントサイズになる。
  • <p>のマージンがなくなる。
  • <li>のビュレット※1が表示されなくなる。

マージンとパディングは全て0になります。
まっさら過ぎるため、自分で独自のスタイルを定義していく必要も生じます。
結果、CSS自体の記述量は増えてしまうでしょう。
まっさらな状態から全てのCSSを設定したい場合に向いています。

HTML5 Doctor Reset CSSが有名です。
以下で記載されているコードをコピペしてreset.cssという名前で保存することで取得できます。
HTML5 Reset Stylesheet | HTML5 Doctor

保存したら、linkタグで読み込みましょう。

html
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">

ノーマライズCSS

デフォルトCSSで適用されるスタイルは可能な限り残しつつ、ブラウザ間での表示の差異をなくすように調整するCSS。

以下からダウンロードできます。
Normalize.css: Make browsers render all elements more consistently.

保存したら、linkタグで読み込みましょう。

html
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/style.css">

サニタイズCSS

ノーマライズCSSをさらに気を利かせた感じのCSS。
ある意味、タグのCSSフレームワークです。
例えば以下の設定が追加されます。

  • <nav><ul>に含まれる<li>(ページナビゲーションによく使われるタグ構造)にはビュレットを表示しない
  • 全ての要素に「box-sizing: border-box」※2が適用されている。(レスポンシブWebデザインに便利)

以下からダウンロードできます。
sanitize.css

保存したら、linkタグで読み込みましょう。

html
<link rel="stylesheet" href="css/sanitize.css">
<link rel="stylesheet" href="css/style.css">

使用上の注意

リセットCSS、ノーマライズCSS、サニタイズCSSは必ず一番最初に設定します。
つまりリセットCSSについての<link>タグは一番上に置きます。
(上記の読み込み例は全て自分で設定したstyle.cssを後に読み込ませています。)

html
<link rel="stylesheet" href="css/sanitize.css">
<link rel="stylesheet" href="css/style.css">

後で設定すると、タグが上手くリセットされません。

※1: ビュレットは<li>タグの前にある「・」のこと。
※2: 「border-box」はパディングとボーダーを幅と高さに含める設定。
パディングとボーダーを幅と高さに含めない設定は「content-box」で、本来はこちらが初期値。


Viewing all articles
Browse latest Browse all 8933

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>