• ベストアンサー

list-style-image

リスト項目の先頭をlist-style-imageで設定したのですが、 図形が大きすぎて、図のようにテキストが右下に来てしまいます。 ┌──┐ │ 図 │ │   │abcde └──┘ テキストを中央にして、abcdeと図の間を1文字分くらい あけたいのですが、どうすればいいですか。

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

  • ベストアンサー
  • yui56544
  • ベストアンサー率69% (85/123)
回答No.1

リストマークに画像を指定する場合は、list-style-imageではなく、背景画像として指定した方が見栄えがよくなります 例えばこのような感じです li { backdround: url(画像のURL) left center no-repeat; padding: 3px 0px 3px 20px;  /*画像のサイズによるので調節してください*/ }

noname#147836
質問者

お礼

liの中でbackgroundを指定するんですか。 こんなこと出来るなんて初めて知りました。 ご回答有り難うございます。

その他の回答 (2)

回答No.3

>テキストを中央にして、 >abcdeと図の間を1文字分くらい { vertical-align: middle; list-style-position: outside; padding-left: 1em; } 未検証です。

noname#147836
質問者

お礼

3つも回答が来て、どうも有り難うです。 僕もまだ未検証です。 取り敢えず皆様にお礼をしておきます。

noname#147836
質問者

補足

ご報告します。 padding-leftはうまく行ったのですが、 vertical-alignはダメでした。 No1の方の方法は画像が重なってダメ。 beforeも機能せずでした。 結局No1の方の方法をdivで採用しました。 list項目なのにdivでいいのかと自問してます。 簡単なようでいて難しいですね。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

擬似要素:beforeとcontentプロパティを使いましょう。 <div class="nav">  <ul>   <li><a href=""></a></li> ・・の場合 div.nav ul,div.nav ul li{list-style:none; display:block; margin:0;padding:0;} div.nav ul li{margin:left:60px;} div.nav ul li:before{content:url(画像URL);position:relative;top:-20px;} とか・・

noname#147836
質問者

お礼

なんか複雑ですね。達人みたいです。 でも、4行目まで自分のソースに近かったします。 意外と相性がいいかもしれません。

関連するQ&A

専門家に質問してみよう