CSS おれおれ Advent Calendar 2012 – 12日目
あんまり長いのじゃなくても良いじゃないって思います。
最初
Lv.0 そのまま
何もしない状態です。
このHTMLを例に、あれこれリセットしてみます。
おすすめ
Lv.1 全ての余白を消す
ユニバーサルセレクター*
を使って、全部ぱぱっと消しちゃいます。
* { margin:0; padding:0; }
これでだいぶさっぱりしました。
Lv.2 全てのフォントを揃える
見出しの文字が大きいのが気になります。同じにしてしまいます。
* { margin:0; padding:0; font-size:1em; font-weight:normal; }
太字もやめます。
Lv.3 リストの行頭表示(マーカー)を消す or 見せる
ul, ol { list-style-type:none; }
消しちゃうとよくない場合もあります。その場合は逆に余白を復活させましょう。
ul, ol { margin-left:2em; }
これくらいなら丸暗記できるかな
と思うのですが、いかがでしょうか。
* { margin:0; padding:0; font-size:1em; font-weight:normal; } ul, ol { list-style-type:none; }
必要に応じて追加
Lv.4 フォーム入力のスタイルを整える
隙間等を調整します。
input, textarea, select, button { font-size:.7em; padding:.1em; } button { padding:.3em .6em; }
:not()
がCSSでもjQueryと同じ仕様だったら*:not(input, textarea, select, button)
で済むんですが、CSSの:not()
は括弧の中身はひとつだけという仕様なので……。
Lv.5 リンク等を通常文字のように見せる
リンクの色を普通の文字と同じにして、下線を消します。ついでにem
やaddress
の斜体も消しちゃいましょう。
* { color:inherit;text-decoration:none;font-style:normal; }
Lv.6 上付き文字、下付き文字のサイズを整える
あんまり使わない気がしますが。
sub, sup { font-size:.8em; }
Lv.7 フォーム入力欄のスタイルをもっところす
枠線とかも消しちゃいます。やるのなら「Lv.4 フォーム入力のスタイルを整える」は抜きましょう。
* { background-color:transparent;border-style:none; }
だ、誰が得するんだろうね。
全消し
漏れあるとは思いますが、まあだいたいこんな感じかな。
* { margin:0; padding:0; font-size:1em; font-weight:normal; color:inherit;text-decoration:none;font-style:normal; background-color:transparent;border-style:none; } ul, ol { list-style-type:none; }
フォームや上下付き文字のスタイル補完は抜いてます。(リセットというよりノーマライズの分野かと。)
おしまい
ユニバーサルセレクター*
が遅いってのは都市伝説じゃないかなーって思ってるけどどうなんですか。
さて、中盤のやつを再掲しときます。
* { margin:0; padding:0; font-size:1em; font-weight:normal; } ul, ol { list-style-type:none; }
これくらいなら覚えられるんじゃないでしょうか。(覚えるなら文字じゃなくて内容でね。) フォーム系がちょっとアレなんだけど、どこからか探してくる面倒だわーってときにどうぞ。
どんど晴れ。