前回、トップページに挿入したヘッダ画像の表示位置がずれているので、余白を入れて調整しましょう。
画像の表示位置を調整するスタイル指定をするために、まずは、img要素を
<div id=”img_index”>~</div>
で囲みます。
この範囲にimg_indexというid名を付けて、その名前をセレクタにしてスタイルを指定していくためです。
id名を付けることで、この画像だけを一意に特定して、他の画像にまでスタイル指定を影響させない狙いがあります。
index に以下の記述を追加してください。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="base.css"> <title>ウェブサンプル株式会社</title> </head> <body> <div id="pagebody"> <!-- ヘッダ --> <div id="header"> <h1><a href="index "><img src="https://www.htmq.com/wp-content/themes/htmq/htmq-images/logo.png" alt="ウェブサンプル株式会社"></a></h1> </div> <!-- メインメニュー --> <ul id="menu"> <li><a href="index ">ホーム</a></li> <li><a href="product ">製品紹介</a></li> <li><a href="profile ">会社概要</a></li> <li><a href="contact ">お問合せ</a></li> </ul> <!-- ヘッダ画像 --> <div id="img_index"> <img src="./images/img_index.png" alt="あしたをみつめるウェブサンプル株式会社"> </div> <!-- インフォメーション --> <h2>新着情報</h2> <h3>新商品のご案内</h3> <p> あいうえおかきくけこさしすせそ(中略) </p> <h3>展示会への出展</h3> <p> あいうえおかきくけこさしすせそ(中略) </p> <h3>環境への取り組み</h3> <p> あいうえおかきくけこさしすせそ(中略) </p> <!-- フッタ --> <small>Copyright (c) ウェブサンプル株式会社 All Rights Reserved.</small> </div> </body> </html>
次に、base.cssに以下の記述を追加してください。
CSSファイル内のどの位置に記述しても良いのですが、CSSソースの最後尾に追加することにしましょう。
@charset "utf-8";
/*============================================
全般的なスタイル
============================================*/
* {
margin:0; padding:0; /*全要素のマージン・パディングをリセット*/
}
body {
background-color:#cccccc; /*ページ全体の背景色*/
background-image:url("images/bg_body.png"); /*ウェブページ全体の背景画像*/
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; /*内容全体の背景色*/
background-image:url("images/bg_pagebody.png"); /*コンテンツ全体の背景画像*/
background-repeat:repeat-y; /*背景画像を縦方向に繰り返す*/
}
img {border:0;} /*画像のボーダーを0にする*/
/*============================================
ヘッダ
============================================*/
div#header {
height:80px; /*ヘッダ部分の高さ*/
}
div#header h1 {
padding:10px 0px 5px 20px; /*見出しの位置調整*/
font-size:18px; /*フォントのサイズ*/
font-family:Arial, Helvetica, sans-serif; /*フォントの種類*/
}
div#header h1 a {text-decoration:none;} /*リンクの下線を無くす*/
/*============================================
メインメニュー
============================================*/
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); /*リンクにマウスが乗ったら背景画像を変更する*/
}
/*============================================
ヘッダ画像
============================================*/
#img_index {
width:960px; height:360px; /*トップページのヘッダ画像の表示サイズを指定*/
margin:5px 20px; /*マージン*/
}
index とbase.cssを保存したら、ブラウザで表示してみましょう。
ヘッダ画像の表示位置が調整されて、中央に表示されるようになれば成功です。
width:960px; height:360px; は、画像の幅と高さを指定しています。
この指定は必須ではありませんが、画像が表示される領域をあらかじめ確保させるために指定しています。
margin:5px 20px; は、画像のマージン(外側余白)を、上下5ピクセル、左右20ピクセルずつ空けるように指定しています。
コンテンツ表示部分(背景を白くした領域)の横幅は1000pxと指定していますが、それに対して画像の横幅が960px、その左右に20pxずつマージンを指定することで、20px+960px+20px=1000pxとしています。
これは、偶然に1000pxで一致したというわけではなく、あらかじめレイアウトがそうなるように計算して、各部分のサイズや余白の値を決めています。
ブラウザがウェブページを読み込んで描画する際、画像データの読み込みに時間が掛かる場合には、先に画像の無い状態のウェブページが表示されてから、後から画像データが読み込まれて表示されます。
この際、画像の幅と高さを指定していないと、先に表示されていたウェブページが一旦消えて画像あり画面が再描画されるため、描画がチカチカしてウェブページの読み込みが遅いような印象を受けることがあります。
CSSのwidthプロパティとheightプロパティで画像の幅と高さを指定しておくことで、画像の読み込みに時間が掛かる場合にも、後から画像が表示されるはずの領域をあらかじめ確保することができます。
仮に画像の読み込みに失敗したとしても、本来画像があるはずの領域が確保されているため、制作者が意図したレイアウトを保つことができます。
<前へ | 目次へ | 次へ> |