Reset CSS考察 -Reset CSSについて-

以前、6つのポピュラーなReset CSSテクニックというエントリーを書かせてもらいましたが、改めてReset CSSについて深く書きたいと思います。

Reset CSSとは

Reset CSSとは、各ブラウザ(Internet Explore、Firefoxなど)で指定されているスタイルシートの初期化をするためのCSSである。

なぜReset CSS

各ブラウザ(Internet Explore、Firefoxなど)では、デフォルトでスタイルを持っています。

というのは、通常、HTMLをマークアップしているときに、<h1>ならば、太字で大体24px程度のフォントサイズになったり、<strong>や<em>ならば、太字や斜体の表示になります。

これというのは、<strong>だから太字で、<em>だから斜体というHTMLの仕様ではありません。

<strong>が太字で、<em>は斜体というのは、各ブラウザがデフォルトで持っているスタイルなのです。それ以外にも、<p>には、marginがかかってたりとするので、こういう各ブラウザのデフォルトスタイル(ブラウザごとによってスタイルが違ったりするので)をリセットするのが、Reset CSSです。

少し前までのReset CSS

少し前までは、下記のようなやり方が主流でした。

* {
	margin: 0;
	padding: 0;
}

*(アスタリスク、CSSではユニバーサルセレクタと呼ぶ)は、全部のプロパティのセレクタになります。

一括指定できて非常に便利なセレクタです。

*(ユニバーサルセレクタ)によるデメリット

*(ユニバーサルセレクタ)によるリセットは、一括指定できて便利なのですが、意図しないスタイルまでリセットしてしまうことや、新しいプロパティに対応とできないことや、レンダリングが遅くなる点とサブミットボタンなどの指定もおかしくなる点にデメリットがある。

Reset CSSのソース

6つのポピュラーなReset CSSテクニックというエントリーでも書いているのですが、下記が有名なReset CSSです。

私個人としては、この二つを参考にしています。どれでも良いと思うのが感想です。

Eric Meyer's Reset

/* v1.0 | 20080212 */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

/* remember to define focus styles! */
:focus {
	outline: 0;
}

/* remember to highlight inserts somehow! */
ins {
	text-decoration: none;
}
del {
	text-decoration: line-through;
}

/* tables still need 'cellspacing="0"' in the markup */
table {
	border-collapse: collapse;
	border-spacing: 0;
}

Yahoo User Interface Reset

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
	padding: 0;
	margin: 0;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
fieldset,img {
	border: 0;
}
address,caption,cite,code,dfn,em,strong,th,var {
	font-weight: normal;
	font-style: normal;
}
ol,ul {
	list-style: none;
}
caption,th {
	text-align: left;
}
h1,h2,h3,h4,h5,h6 {
	font-weight: normal;
	font-size: 100%;
}
q:before,q:after {
	content:'';
}
abbr,acronym { border: 0;
}

結論

Reset CSSのメリットとしては、マークアップがしやすくなることです。
そして、CSSハック無しでも各ブラウザの表示が統一しやすくなります。

ですので、上記のソースを参考にReset CSSを用意するのも良いかと思います。

あとがき的な個人的な見解

ブラウザのデフォルトスタイルは絶対にリセットしなければいけないというわけではないので、必要に応じて利用するのが良いとも思います。(必要な要素のみ下記がソース例)

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
	padding: 0;
	margin: 0;
}