• ベストアンサー

メイン画像とグローバルメニューの間に隙間

メイン画像とグローバルメニューの間に3pxくらいの隙間が空きます。 マージンやpadding等をいじっても改善する事が出来ませんでした。 IE6・Firefoxとも同じ症状が出ます。 CSSを勉強中なので初歩的なミスかと思いますが、宜しくお願いします。 【HTML】 <!--メインイメージ開始--> <img src="images/img.jpg" / alt="○○○ホームページ"> <!--メインイメージ終了--> <!--回り込み解除--> <div class="clear"></div> <!--グローバルメニュー開始--> <div id="glmenu"> <ul> <li id="m_top"><a href="#">トップ</a></li> <li id="m_menu_list"><a href="#">メニュー1</a></li> <li id="m_store"><a href="#">メニュー2</a></li> <li id="m_history"><a href="#">メニュー3</a></li> <li id="m_check"><a href="#">メニュー4</a></li> </ul> </div> <!--グローバルメニュー終了--> 【CSS】 /*=======メニュー全体=======*/ #glmenu{ width:630px; height:40px; margin:0; padding:0; position:relative; } #glmenu ul { width:630px; height:40px; padding:0; margin:0; } #glmenu li { margin:0; padding:0; list-style-type:none; float:left; text-indent:-2000px; } /*=======トップ=======*/ #glmenu li#m_top a { background:url(images/m_top.jpg); width:126px; height:40px; display:block; text-decoration:none;/*ネスケ用*/ outline:none;/*Firefox用*/ } /*=======メニュー1=======*/ #glmenu li#m_menu_list a { background:url(images/m_menu_list.jpg); width:126px; height:40px; display:block; text-decoration:none;/*ネスケ用*/ outline:none;/*Firefox用*/ } /*=======メニュー2=======*/ #glmenu li#m_store a { background:url(images/m_store.jpg); width:126px; height:40px; display:block; text-decoration:none;/*ネスケ用*/ outline:none;/*Firefox用*/ } /*=======メニュー3=======*/ #glmenu li#m_history a { background:url(images/m_history.jpg); width:126px; height:40px; display:block; text-decoration:none;/*ネスケ用*/ outline:none;/*Firefox用*/ } /*=======メニュー4=======*/ #glmenu li#m_check a { background:url(images/m_check.jpg); width:126px; height:40px; display:block; text-decoration:none;/*ネスケ用*/ outline:none;/*Firefox用*/ } こんな感じです。 なぜ、このような隙間が空いてしまうのか、改善方法を教えていただけないでしょうか? 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#66720
noname#66720
回答No.1

img要素をブロック要素にするのはどうでしょう? img { display:block; } このソースだけではわかりませんが、もしもimg要素がbody直下に書かれているようであれば文法的にブロック要素(pなりdivなり)で囲ってやる必要があります。 あと、<div class="clear"></div>はたしか<div class="clear"><!-- 回り込み解除 --></div>のようにコメントアウトをいれないと上手く動かないブラウザがあったような気がします。

misa2451
質問者

お礼

ご親切に説明していただきありがとうございます。 今まで、メニュー部分にしかdisplay:block;を使用したことがなかったので、img等にも使用できるとは知りませんでした。 ありがとうございます。

その他の回答 (1)

  • 0wl
  • ベストアンサー率43% (10/23)
回答No.2

img{ vertical-align:bottom; } を足してみてください。メニュー部分とは多分関係ないです。 デフォルトではbaselineが多いですので。 解説すると、アルファベットのbaselineは下が揃ってますよね。これにgjpqyy等下にぴょこんと出た部分が今のすき間と言っておられる部分だと思います。日本語のしたはbaselineに合っているので、文字がないと画像がその分浮いた形で表示されるように見えます。

misa2451
質問者

お礼

親切に教えていただきありがとうございます。 変な隙間を解消することができました。 グローバルメニューの上部に隙間が空いている場合でも、アルファベットのベースラインが関係してくるのでしょうか?