第8章 背景色を指定する
| ブラウザの初期スタイルのリセット
|
ブラウザの初期スタイルのうち、余白の設定をリセットします。 余白には、外側余白(margin)と内側余白(padding)がありますが、これらの値を0にすることで余白を消すことができます。
base.cssに以下の記述を追加してください。
CSSソース(base.css)@charset "utf-8";
/*============================================
全般的なスタイル
============================================*/
* {
margin:0; padding:0; /*全要素のマージン・パディングをリセット*/
}
body {
background-color:#cccccc; /*ページ全体の背景色*/
font-size:95%; /* フォントサイズを95%にする */
font-family: "MS ゴシック",sans-serif; /* フォントの種類をゴシック系にする */
line-height:1.5; /* 行の高さを1.5倍にする */
color:#333333; /* 文字色を濃い目のグレーにする */
}
div#pagebody {
width:1000px; margin:0 auto; /*内容全体をセンタリング*/
background-color:#ffffff; /*内容全体の背景色*/
}
/*============================================
メインメニュー
============================================*/
ul#menu {
width:960px; height:50px; /*メインメニュー部分の幅と高さ*/
}
#menu li {
list-style-type:none; /*リストマーカー無しにする*/
display:inline; /*リスト項目をインライン表示にする*/
float:left; /*リスト項目を横に並べる*/
}
#menu li a {
background-color:navy; /*背景色*/
color:#ffffff; /*文字色*/
display:block; /*リンク部分をブロック表示にする*/
width:240px; height:35px; /*幅と高さ*/
padding:15px 0px 0px 0px; /*上パディング*/
text-align:center; /*テキストをセンター揃えにする*/
text-decoration:none; /*リンク部分を下線無しにする*/
background-image:url(images/bg_menu1.png); /*背景画像を指定*/
background-repeat:no-repeat; /*背景画像を繰り返さない*/
}
#menu li a:hover {
background-color:#000066; /*リンクにマウスが乗ったら背景色を変更する*/
background-image:url(images/bg_menu2.png); /*リンクにマウスが乗ったら背景画像を変更する*/
}
保存をしたらブラウザで表示してみましょう。 全要素の外側余白(margin)と内側余白(padding)を0にしたことで、見出しや段落も余白がなくなり、隙間なく表示されるようになりました。
▶︎ 変更前を確認する
|
| 横幅を固定して左右にマージンを振り分ける
|
今回追加したCSSソースでは、width:1000px; で幅を1000ピクセルに固定して、margin:0 auto;でボックスをセンタリングしています。 これは「横幅1000ピクセルのボックスを、左右マージンを自動算出して配置しなさい」と指定していることになります。
margin:0 auto; の部分は、0とautoの2つの値を半角スペース区切りで指定しています。 marginプロパティの値を2つ指定すると、記述した順に[上下] [左右]のマージンを指定したことになります。 margin:0 auto; は、上下マージンを無しにして、左右マージンを自動算出にするという指定です。
ul要素の左側の余白が無くなったことで、メインメニュー部分が左寄せされたような表示になりました。 それによって、今度は逆に右側に余白があり過ぎるように見えます。
|
| 初期スタイルのリセットは必要最小限にとどめる
|
一般的なブラウザではh1要素は大きく太字で表示され、blockquote要素はインデント(字下げ)されて表示されます。 これは、HTMLの各要素をどのように表示するのかを指定する、初期スタイルがブラウザに設定されているからです。 初期スタイルは、制作者側で特にCSSを指定しなくてもある程度読みやすくレイアウトしてくれるので便利です。
しかし、制作者の意図とは違うスタイルがあらかじめ設定されていたり、ブラウザごとにデフォルトスタイルが微妙に異なっているなど、 ウェブ制作を進めていくうえで邪魔になることもあります。
そこで、今回は全称セレクタを使用して* {margin:0; padding:0;} の指定で初期スタイルをリセットしたのですが、 今回指定した全要素の余白をゼロにする指定は、例えば、p要素の上下に自動的に空けられる余白まで消してしまっています。 消してしまった余白が必要な場合には、あらためてCSSソースで指定しなくてはなりません。
ブラウザの初期スタイルをリセットするということは、ブラウザによってあらかじめ適切に設定されていたスタイルまで消去してしまうということでもあります。 リセットした場合には、制作者がその部分(今回の作例でいえば、すべての要素の余白部分)のスタイルに責任を持たなくてはなりません。
初期スタイルのリセットは、必要最小限にとどめるほうが良いでしょう。
|
まとめ
- ブラウザには、各要素を表示する際の初期スタイルが設定されている
- レイアウトを作成する際、この初期スタイルが邪魔になることもある
- * {margin:0; padding:0;} は、全要素のマージン・パディングをリセットする指定