list-style-imageのマーカーとコンテンツの距離について

このQ&Aのポイント
  • list-style-imageのマーカーとコンテンツの距離を調整する方法について詳しく調査しました。
  • 現在、list-style-imageのマーカーとコンテンツの間に隙間ができる現象が発生しています。
  • CSS2の仕様には「marker-offset」というプロパティが存在しますが、一部のブラウザが未対応です。
回答を見る
  • ベストアンサー

list-style-image・・マーカーとコンテンツの距離

縦横15ピクセルのmarker.gifを使って、リストのマーカーに指定したいのですが・・・ たとえば、このようにすると、 ul { margin: 0px; padding: 0px; } li { background-color: lightgrey; margin: 0px 0px 5px 15px; padding: 0px; list-style-image: url("marker.gif"); list-style-position: outside; } IEやOperaでは、マーカーのすぐ左にコンテンツ(灰色の背景色つき)がくるのに対して、 Firefoxでは、マーカーとコンテンツの間に何ピクセルか隙間ができて、結果、マーカーが親エレメントより左側にはみ出してしまいます。 CSS2の仕様をしらべると、「marker-offset」というプロパティがあるようなのですが、まだブラウザが未対応のようで・・・ この隙間は、どういう定義なのでしょうか?規定値が決まっていたりするのでしょうか? また、変更することはできないのでしょうか?

noname#43437
noname#43437
  • HTML
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

marker(というよりリスト)周りについてはブラウザで実装されていなかったり実装に解釈の違いがあったりして残念ながらうまく活用できないのが現状です。 リストの行頭に画像を付けたい場合、positionやrepeatなんかと合わせてbackgrond-imageとして表示させる(背景画像はされないケースがあるとか、これはこれで問題もありますが。)か、 cssですらなくなりますが<img>とした方が無難なようです。

noname#43437
質問者

お礼

なるほど・・そういう事情だったのですね。 背景画像の方法でうまくいきました。これでいこうと思います。 ありがとうございました!

その他の回答 (1)

noname#19206
noname#19206
回答No.2

参考リンクを見ればどういうことであるかの事情と対処法が分かるんじゃないかと思います。

参考URL:
http://www.mozilla.gr.jp/standards/webtips/webtips0034.html

関連するQ&A

  • リストの回り込みについて(マーカーの位置がずれます

    助言いただきたく質問させていただきます。 画像の回り込みを使用してのリストの表示で、IEで表示した際にマーカーの位置が画像とかぶってしまいます。 -----------HTML----------- <div class="com" style="width: 650px;"> <img src="image.jpg" class="img_left"> <ul> <li class="book">あああああああ</li> <li class="book">いいいいいいい</li> <li class="book">ううううううう</li> <li class="book">えええええええ</li> <li class="book">おおおおおおお</li> </ul> </div> --------------------------- -----------CSS----------- .com { margin: 0 auto; padding: 20px; overflow:hidden; } img.img_left{ float: left; margin-right: 30px; } .book { list-style-type: square; padding-bottom: 20px; } --------------------------- FirefoxとChromeではちゃんと画像の右側にマーカーが表示されるので IE用のコードの書き方があるのかなと思っています。 初歩的なものとは思いますが、ご指摘お願いいたします。

    • ベストアンサー
    • HTML
  • リストで間が開いてしまう・・・

    xhtml&cssでサイト作成を行っているのですが、 リストをインラインでならべて、 list-style-type: none; でリストの黒丸を消して、 そこに画像を入れてならべようと思ったのですが、 画像と画像の間に隙間が開いてしまいます。 ソースはこちらです。 ---XHTML------------------------- <div id="@"> <ul> <li> <img src="@" /> </li> <li> <img src="@" /> </li> <li> <img src="@" /> </li> </ul> </div> ----XHTML---------------------------------- ----CSS------------------------------------ div#@@@@ ul{ display: inline; list-style-type: none; margin: 0px; padding: 0px; } div#@@@@ li{ display: inline; list-style-type: none; margin: 0px; padding: 0px; } ----CSS------------------------------------ 念のために、ulとliの両方を指定しておきました。 (通常は、liだけでよいです。) このとおりになるのですが、 これで、隙間をなくす方法を知っていたら教えてください! お願いします!

  • list-style-imageがきかない。

    下記のようにリストの中黒を画像にしたいのですが、Chromeでは画像が表示されず、中黒のままです。原因が分る方教えてください。 SafariとFireFoxでは表示されます。 [html] <ul> <li><a href="concept.html">コンセプト</a></li> <li><a href="gallery.html">ギャラリー</a> </li> </ul> [CSS] li { margin-bottom:15px; margin-left:50px; list-style-image:url("../img/xxx.png"); }

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

    リストタグに画像<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; }

  • WinIE5でリストに隙間ができる

    WinIE5で下記のCSSを実行すると、なぜか文字の下に隙間が出来てしまいます。 WinIE5.5、WinIE6等では隙間は出来ません。 なにかうまく解決する方法はありませんでしょうか。 よろしくお願いします。 ------------------------------ #nav ul { list-style: none; margin: 0; padding: 0; } #nav li { margin: 0; padding: 0; background: #e0861e; width: 100px; } <div id="nav"> <ul> <li>あいうえお</li> <li>かきくけこ</li> <li>さしすせそ</li> </ul> </div> ------------------------------

  • メニューをスタイルシートで設定

    画像を使用したメニューをULタグとLIタグで作成し、 スタイルシートで余白等の設定しましたが、画像の下に余白が入ってしまいます。 背景色をつけたところ、LIタグに余白がついていることは 確認できたのですが、これをなくす方法が分からずにいます。 HTML----------------------------------------------------- <UL> <LI><IMG src="img/img1.gif" width="265" height="21"></LI> <LI><IMG src="img/img2.gif" width="265" height="21"></LI> <LI><IMG src="img/img3.gif" width="265" height="21"></LI> </UL> CSS----------------------------------------------------- UL { list-style-type:none; margin:0px; padding:0px; } LI { padding:0px; margin:0px; } アドバイスを頂けると助かります。 どうぞよろしくお願い致します。

    • ベストアンサー
    • HTML
  • リストを全体的に右寄せにしたい。

    リストを横並びにしました。 これを大きいdivで囲んだ中の右寄せにするにはどうしたらよいのでしょうか。 #ex { width: 100%; background-color: #66CCFF; height: 28px; } #ex ul { list-style: none; } #ex li { margin: 0px; padding: 5px 0px 5px 30px; list-style: none; float: left; background: url(***.gif) no-repeat 10px 0.5em; } <div id="ex"> <ul> <li><a href="#">リスト</a></li> <li><a href="#">リスト</a></li> </ul> </div>

    • ベストアンサー
    • HTML
  • CSSでリストマーカーを背景画像表示した場合のブラウザ(OS)間のずれ

    よくある手法だと思いますが、<li>に背景画像を表示し擬似的にマーカーを表示しています。 簡略化した例を下記に書きます。 例) ---------- HTML <ul> <li>リスト1</li> <li>リスト2</li> </ul> ---------- CSS * { padding: 0; margin: 0;} body { font-family: Osaka,'MS Pゴシック',sans-serif; font-size: 12px; line-height: 1.4; } ul, li { list-style: none;} li { back-ground-image: url(~~~~.gif); /* 5px×5pxのマーカー */ back-ground-position: 0 2px; /* winでジャストの位置 */ back-ground-repeat: no-repeat; padding-left: 10px; } テストブラウザはwin:IE/Firefox、mac:safari/firefoxです。 上記の例でwinではジャスト表示なのですが、macでは予想以上に上にマーカーが表示されてしまいます。 back-ground-position: 0 center; にすると全体的に若干予想より下にきてしまい、IEではかなり下に来てしまいます。 line-heightや画像サイズを変更したりしてみましたがなかなかうまくいきません。 他に何かよい方法はありますでしょうか。

    • 締切済み
    • CSS
  • 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; } 宜しくお願いします!

  • スタイルシートでのメニュー作成で

    今回初めてテーブルを使わずスタイルシートでナビゲーションを作成しているのですが 下記の方法ではメニュー内のテキストが左に寄ってしまいます。 出来ればすっかり左寄せではなく、左に10px程空間を入れたいのですがどのようにすれば良いでしょうか。 CSS内の#menuに「margin-left:10px」としても反映されません。 ■■ CSS ■■ #menu {margin: 12px; padding: 0px; width: 180px; border-top: 1px solid #080240; border-right: 1px solid #080240; border-left: 1px solid #080240; font-size: 100%; } #menu ul {margin: 0px; padding: 0px; list-style: none; } #menu li {margin: 0px; padding: 0px; } ■■ HTML ■■ <ul> <li><a href="#">メニュー1</a></li> <li><a href="#">メニュー2</a></li> </ul> アドバイスいただけると助かります。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • HTML

専門家に質問してみよう