• ベストアンサー

ulでの段組の際の隙間

お世話になります。 現在CSSで段組を行っているのですが、リスト(ul)で画像を縦に並べてメニューを作成しようと思っています。 liにはheightやmarginやpaddingなどをきちんと隙間なく並べるように書いて、imgにはvertical-align:bottom;を設定しています。 それでも、IE6.0で見たときどうしても1pxの隙間ができてしまうのです。 どうしてだろうと思い、画像の高さが25pxのものを作成し、liのheightに25pxを設定して(他は上記のCSSでいじらずに)表示すると、きちんと隙間ができずに表示されました。 隙間ができてしまうときのメニュー画像は高さ15pxのものを使用していて、liのheightを15pxと設定していました。 今までCSSで組んだときはきちんと隙間があくことなく表示できたのですが、今回だけどうしても隙間があいてしまいます。 メニューのリストで、使用する画像は小さいときは隙間があいてしまう、というようなバグがIEにあるのでしょうか。 もしそれがバグの場合は一言お教えいただけないでしょうか。 解決方法がなければしょうがないのでテーブルを使用しようと思います。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • partita
  • ベストアンサー率29% (125/427)
回答No.1

いろいろliに適用してみてください。 li { font-size:1px; line-height:0; text-decoration:none; } どれかがマッチするはず。

myaa_myu
質問者

お礼

大変遅くなりましたが、ご回答ありがとうございました。 試してみたら、見事ビンゴでした。 どれを設定すればできるのかな…とこの3種類をいろいろな組み合わせで試してみましたが、3つ指定するときっちりメニューをくっつけることができました。 本当にありがとうございました!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#19206
noname#19206
回答No.2

画像の大きさが関係しているのではなく、画像を使っているから隙間が開くんだと思います。 たぶん仕様じゃないかな…?文字と画像を普通に並べても画像のほうが若干高い位置に表示されるし…。 それと、リストで CSS を組む場合は注意が必要です。 IE,Opera と Gecko で認識状態が異なります。 http://www.mozilla.gr.jp/standards/webtips/webtips0034.html

myaa_myu
質問者

お礼

大変遅くなりましたが、問題を解決することができました! ご回答ありがとうございます。 また、それぞれのブラウザによって認識が違うというのは本当に面倒ですよね…; お教えいただいたURLを拝見してもっと勉強しようと思います。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ulとulの間が空いてしまう

    http://www.ana.co.jp/asw/index.jsp こういったメニューが作りたいのですが <ul class="menu"> <li> <li> ... <ul> <ul class="menu"> <li> <li> ... <ul> こうやってやるとulとulの間に隙間が出来ます。 marginもpaddingも0です。 どうやったらいいでしょうか? CSSは下記です。 ul.menu { width: 750px; margin: 0px; padding: 0px; list-style-type: none; line-height:normal; } ul.menu li { line-height:normal; margin: 0px; padding: 0px; float:left; } 宜しくお願いします!

  • CSSで<ul><li>タグを使ってどのブラウザでも同じように表示させたい。

    .ul { width: 120px; height: auto; float: left; font: 12; line-height: 150%; padding: 0; list-style-image: url(img/side-tab.gif); } .li { font-size: 12px; margin-left: 1.5em; } <ul class="○○○"> <li>11111</li> <li>22222</li> <li>33333</li> <li>44444</li> <li>55555</li> <li>66666</li> </ul> このようなコードでlistの頭には画像を使いたいのですが、どうしてもブラウザごとに表示がばらばらになってしまいます。 横幅は185pxまででおさめて、かつlistの画像とテキストが同じ列に表示されるようにしたいと考えています。 唯一firefoxだけが思うように表示できました。 IE6と7でも違う表示になりました(IE6だとかなり右寄り) operaに関しては画像とテキストの縦位置がずれてしまっていました。 CSSに関してはいろいろいじってて、なにがなんだがわからない状態になってしまいました・・ これを一つのCSSできれいに表示することは不可能でしょうか? どうかよろしくお願致します。

    • ベストアンサー
    • HTML
  • CSSでfloat指定した画像に隙間

    floatの指定をすると並べた画像に隙間ができます。 div aで外を囲み、幅を400px固定し、 その中にli(幅200px)を放り込んでいます。 (幅400pxの入れ物に200pxの小箱を2列に並べていく) 画像をfloatさせなければ隙間は出ないのですが、下記cssのようにfloatさせると幅400pxにIEだけ収まりません。 WinXP・irefox1.0やOpera7.5では意図通り表示されます。。 どなたか解決策お持ちの方よろしくおねがいします。 <html> <head> <title></title> <style type="text/css"> <!-- #a{ width:400px; margin: 0 auto; padding:0; } li{ width:200px; padding:0; list-style:none; float:right; display: inline; } img{ border:none; margin:0; padding:0; vertical-align:top; float:left; ←これの有無で不具合 } --> </style> </head> <body> <div id="a"> <dl> <li> <img src="xxx.jpg" width="150" height="200" /><img src="xxx.jpg" width="50" height="100" /><img src="xxx.jpg" width="50" height="100" /></li> <li> <img src="xxx.jpg" width="150" height="200" /><img src="xxx.jpg" width="50" height="200" /></li> </dl> </body> </html>

    • ベストアンサー
    • HTML
  • ホームページのメニューと写真の間に、すき間があく。

    はじめまして。 現在、webデザインの勉強のために架空のサイトを作っています。 そこで、 写真にあるようにメニューバーと その下の写真との間にすき間ができてしまいます。 IE8では、問題ありません。 firefox5,choromeでトラブルがあります。 調べて メニューと、下の写真のmarginとpaddingを0にしたり、 vertical-alignを指定してみたりしたのですが、 変わりませんでした。 下記にそのhtmlとcssを載せていますので、 ご指摘お願いします。 ※dream weaver cs5で作りました。 =========================================== html <div id="menu"> <ul> <li><img src="image/btn_01_s1.jpg" width="160" height="50" alt="ホーム" /></li> <li><img src="image/btn_02_s1.jpg" width="160" height="50" alt="事業内容" /></li> <li><img src="image/btn_03_s1.jpg" width="160" height="50" alt="実績と強み" /></li> <li><img src="image/btn_04_s1.jpg" width="160" height="50" alt="資料請求" /></li> <li><img src="image/btn_05_s1.jpg" width="160" height="50" alt="会社概要" /></a></li> </ul> <!-- / #menu --></div> <div id="photo"> <p><img src="image/catch_s1.jpg" width="800" height="280" /></p> <!-- / #photo --></div> ============================================= css /*メニューバー*/ #menu { width: 800px; height: 50px; margin: 0px; padding: 0px; } #menu ul li { float: left; border-style: none; vertical-align: text-bottom; } /*写真*/ #photo { clear: both; height: 280px; width: 800px; margin: 0px; padding: 0px; }

    • ベストアンサー
    • HTML
  • CSSの左横に隙間ができてしまいます。

    画像の左横に謎の隙間(8mmほど)ができて埋まりません。 そのため、4枚収めたい画像のうち、最後の1枚が改行されてしまっています。 padding や vartical-align、text-alignなど試してみましたが、ダメでした。 とても困っています、どなたかご教示くださいますようお願いいたします。 << CSS >> #header { width:940px; height:59px; margin: 0 0 20px 0; } #logo { width:300px; height:59px; float:left; margin: 0 20px 0 0; } #menu { width:620px; height: 59px; padding: 0; margin: 0; float:right; } #menu img { padding-top:8px; border:none; } #menu ul { margin:0; } #menu ul li { margin: 0px; padding: 0px; list-style-type: none; display:inline; float:left; } << HTML >> <div id="header"> <div id="logo"> <img src="img/logo.gif" width="298" height="59" alt="ロゴ"> </div><!-- /#logo --> <div id="menu"> <ul> <li><img src="img/btn_A.gif" width="194" height="51"></li> <li><img src="img/btn_B.gif" width="140" height="51"></li> <li><img src="img/btn_C.gif" width="149" height="51"></li> <li><img src="img/btn_D.gif" width="137" height="51"></li> </ul> </div><!-- /#menu --> </div><!-- /#header -->

    • ベストアンサー
    • CSS
  • <ul>は必要ですか?

    CSSを使ってなるべくHTMLのソースを減らそうと思い悪戦苦闘中です。 ■が画像だと仮定して書きます。 ■項目1 ■項目2 ■項目4 ■項目5 ■項目6 ■項目7 というような表示ができるようにしたいのですが、 CSSファイルに ul { list-style-image: url(img/mark.gif); vertical-align: middle; } と指定してHTMLには <ul> <li>項目1</li> <li>項目2</li> <li>項目4</li> <li>項目5</li> <li>項目6</li> <li>項目7</li> </ul> と書きました。そうすると表示が   ■項目1   ■項目2   ■項目4   ■項目5   ■項目6   ■項目7 と頭にスペースが入ってしまいます。(リスト項目なので当たり前なのかも知れないですが…) これをスペースをなくしたいのです。 そこで、<li>だけならどうだろうと思い、CSSを下記のように書き直し試したところスペースがなく表示出来ました。 li { list-style-image: url(img/mark.gif); vertical-align: middle; } <ul></ul>は必要でしょうか? それとも他に方法があればご教授下さい。私には上の方法しか思いつきませんでした。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • メイン画像とグローバルメニューの間に隙間

    メイン画像とグローバルメニューの間に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用*/ } こんな感じです。 なぜ、このような隙間が空いてしまうのか、改善方法を教えていただけないでしょうか? 宜しくお願いします。

    • ベストアンサー
    • HTML
  • リストタグに画像を入れた場合

    リストタグに画像<img>タグを入れたのですが、Firefoxでは隙間なく表示されますが、IE6で確認すると、画像の下に隙間ができてしまいます(3pxほど)。 何か修正点や、解決策があればお願い致します。 そもそも、リストタグに画像を入れることがおかしいのでしょうか? 【HTML】 <ul id="navi"> <li><img src="../img/aaa.gif" width="200" height="50"></li> <li><img src="../img/bbb.gif" width="200" height="50"></li> <li><img src="../img/ccc.gif" width="200" height="50"></li> <li><img src="../img/ddd.gif" width="200" height="50"></li> </ul> 【CSS】 ul#navi{ margin: 0px; padding: 0px; } ul#navi li{ margin: 0px; padding: 0px; list-style-type: none; list-style-position: outside; display: block; width: 200px; height: 50px; }

  • IE6で画像の下に余白が入ってしまいます。

    CSSを使ってレイアウトをしているのですが、 <ul> <li>画像</li> <li>画像</li> <li>画像</li> </ul> でなぜか画像ごとに、下の部分に少しだけ余白ができてしまいます。 CSSでmarginやpaddingを0にしたり、 http://www.happy-crossing.com/tagmemo/log/eid11.html にあるようにvertical-align:bottomにしたり・・・ それでもなぜか下の余白が表示されています。 こちらの方は治ったみたいなのですが・・・ 他のブラウザはいろいろ見ましたが、余白などなく表示されていました。 Dreamweaver上でも少し余白が見えています・・・ お心当たりのある方がいらっしゃいましたら、どうかよろしくお願致します。 CSSは以下のように記述しています。 ul { float: left; margin: 0px; padding: 0px; list-style: none; margin-top: 45px; } li { width: 150px; background-repeat: no-repeat; padding-left: 13px; padding-bottom: 0px; height: 140px; float: left; vertical-align: bottom; margin-bottom: 0px; }

    • ベストアンサー
    • HTML
  • リストタグを用いた縦メニューで画像に隙間ができます(IE6)

    いつも皆さまには助けていただきありがとうございます。 さてまた今回も質問で申し訳ないのですが、リストタグを用いて縦のメニューを作成しています。 IE6でのみメニュー画像の上下に隙間が出来る現象が発生して困っております。(本当は隙間なくしたい) こちらの質問を参考にして左メニューの画像に「display:block;」や「vertical-align:bottom;」を付けてみましたが、変化なしです。 #left img{ border:none; display:block; vertical-align:bottom; } と入れたんですが、記入がおかしいでしょうか? 色々調べてみましたが、これ以上どういじって良いのかよく分かりません。 一部省略していますがソースを載せますので間違いをご指摘いただければ大変助かります。 よろしくお願いします。 【HTML】 <html> <head> <link rel="stylesheet" href="css/ie6.css" type="text/css" /> <title>タイトル</title> </head> <body> <div id="container"> <!--ヘッダー部分--> <div id="header"> <div id="headerImg" title="タイトル"> </div><!--id:headerImgEnd--> <div id="headerMenu"> <ul> <li></li> <li></li> <li></a></li> </ul> </div><!--headerMenuEnd--> </div><!--id#headerEnd--> <div id="contents"> <!--左メニュー--> <div id="left"> <div id="left_menu"> <ul> <li><a href="a.html" id="a" title="a">a</a></li> </ul> <ul> <li id="b" title="b"></li> <li><a href="c.html" id="c" title="c"></a></li> <li><a href="d.html" id="d" title="d"></ul> </div><!--id:left_menuEnd--> </div><!--id:leftEnd--> <!--メイン--> <div id="main"> </div><!--mainEnd--> <!--フッター--> <div id="footer"> </div><!--id:containerEnd--> </div> </body> </html> 【CSS】 body{ margin:0; padding:0; text-align:center; font-size:14px; } #container{ margin:0 auto; width:800px; text-align:left; borer:solid 1px #999; } #header{ width:800px; } div#headerImg{ width:800px; height:138px; background-image:url(img/title.gif); background-color:#00FFcc; } div#headerMenu{ width:800px; } #contents{ width:800px; } /*左メニュー*/ #left{ float:left; width:180px; } #left_menu ul{ list-style:none; padding:0; margin:0; } #a{ background-image:url(../img/a.gif); width:180px; height:69px; display:block; margin-top:0px; margin-left:0px; } #b{ background-image:url(../img/b.gif); background-repeat:no-repeat; width:180px; height:30px; display:block; margin-top:0px; margin-left:0px; } #c{ background-image:url(../img/c.gif); background-repeat:no-repeat; width:180px; height:25px; list-style:none; display:block; margin-top:0px; margin-left:0px; } a#c:hover{ background-image:url(../img/c02.gif); background-repeat:no-repeat; } #d{ background-image:url(../img/d.gif); background-repeat:no-repeat; width:180px; height:24px; list-style:none; display:block; margin-top:0px; margin-left:0px; } a#d:hover{ background-image:url(../img/d02.gif); background-repeat:no-repeat; } /*メイン*/ #main{ float:right; width:620px; margin:-14px 0 0 0; } /*フッター*/ #footer{ clear:both; width:800px; height:47px; }

    • ベストアンサー
    • HTML