前回、全要素の外側余白(margin)と内側余白(padding)を0にしたことで、
ul要素の左側の余白が無くなってメインメニュー部分が左寄せされたような表示になっています。
そこで、今回はメインメニュー部分を白い背景の範囲の真ん中に来させるために、ul要素のマージンを調整しましょう。
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; /*メインメニュー部分の幅と高さ*/
margin:0px 20px; /*上下マージン0px、左右マージン20px*/
}
#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:0px 20px; は、2つの数値を半角スペース区切りで指定しています。
これは、上下マージン0px、左右マージン20pxということです。
marginプロパティとpaddingプロパティでは、値を2つ指定すると、[上下][左右]と指定していることになります。
値を3つ指定した場合には [上] [左右] [下] 、値を4つ指定した場合には[上][右][下][左]、値を1つだけ指定すると[上下左右]に同じ値をまとめて指定したことになります。
marginとpaddingは良く使うプロパティなので、覚えておくとよいでしょう。
なぜ左右マージンを20pxと指定したのかを説明します。
メインメニューの外側のボックス(親ボックス)である
<div id=”pagebody”> ~ </div>
には width:1000px; が指定されており、親ボックスの幅は1000ピクセルです。
そして、
<ul id=”menu”> ~ </ul>
には、width:960px; が指定されており、子ボックスとなるメインメニューの幅は960ピクセルです。
親ボックスと子ボックスの幅の差は、1000px-960px=40pxとなるので、子ボックスに左右20pxずつ外側余白として割り当てれば、親ボックスに対して小ボックスがセンタリングされることになります。
CSSでウェブページのレイアウトを決める際には、このようにピクセル単位で配置を調整していく作業をすることになります。
<前へ | 目次へ | 次へ> |