リストマークの画像のずれを修正する
サイドバーメニュー等の先頭のマーク(マーカー)表示に画像を使われている方は少なくないと思いますが、img タグをテンプレートに直接記述するのは、ウェブスタンダードでいうところの「構造とデザインの分離」という面よりあまりお勧めできません。またリストの量が増えると img タグの指定も増えることになり(テンプレートでは数ヶ所の指定で済みますが)、ページサイズにも影響します。
ということで、マーク表示にはCSS・リスト形式(li)の画像指定で表示すること好ましいですし、リスト先頭のマークに画像を使われている方も大勢いらっしゃると思いますが、list-style-image プロパティで
li {
list-style-image: url(hogehoge.gif);
}
と画像を指定した場合、下のようにマークが微妙にずれて表示されてしまうのが悩ましいところです(サンプル1)。
サンプル1
これを背景画像で表示させる方法に変更すれば位置を揃えて表示させることができます。
li {
padding-left: 12px;
background: url(hogehoge.gif) no-repeat 10px 0.5em;
list-style: none;
}
padding-left は画像を配置する分の余白です。
url の後ろの指定は順に
- background-repeat(画像の繰り返し表示)
- background-position-x(X軸方向の開始位置)
- background-position-y(Y軸方向の開始位置)
です。サンプル2が background 指定で表示した場合です。
サンプル2
ちなみに左上の「最近のエントリー」で使っている地味な画像のHTMLとCSSは下記のような指定を行っています。
HTML
<ul class="list">
<li>~</li>
:
<li>~</li>
</ul>
CSS
ul.list {
list-style: none;
margin: 0px;
margin-left: 0px;
padding: 0px;
}
ul.list li {
margin: 0px;
padding: 0px 0px 0px 12px;
background: url(hogehoge.gif) no-repeat 3px 0.4em;
list-style: none;
}
HTMLの ul 要素に class 属性を与えているのは、ul - li を適用する場所によって異なるスタイルを与えることを想定しています。全ての ul - li 要素に同じスタイルを与える場合、HTMLの class 属性や CSS の class セレクタは不要(ul.list → ul)です。
2005.08.21 追記サンプルのHTMLを追加しました。
- YouTube動画にキャプションをつけてテキストを回り込ませる方法
- 画像を下揃えにしてテキストを回り込ませる方法
- style要素にCSSの擬似要素は記述可能か?
- position:relativeを設定すると他の要素がずれる場合の対処
- CSSでタブ切り替えする方法
- :target擬似クラスのまとめ
- CSSでヘッダを固定したスクロールテーブルを作る方法
- レスポンシブウェブデザインで画像を縮小する方法
- disabledなボタンのhoverのスタイルを無効にする方法
- HTML要素を別の要素を基点にしてCSSで絶対配置する方法
- :not擬似クラスでCSS3のサポートをチェックする方法
- :checked擬似クラスでチェックボックスに連動して要素を表示させる方法
- ol要素の入れ子で親の番号を子に割り当てる方法
- チェックボックスやラジオボタンを大きくする方法
- CSSで中央に配置する方法
≫ 記事のタイトルをリストにしました。 from 137g
スタイルによってタイトルの部分のアイコン(記号?)が変わるようにしたくて css... [続きを読む]
≫ CSS リストマーク from アメブロ向上企画書
先日リストマークのズレについて質問がありました
リストマークの付け方も説明しておきます
リストマークってなに?
サイドバーの中の項目は... [続きを読む]
いつもお世話になっております。
初歩的な質問で申し訳ありませんが。。。
エントリー、コメントの各々頭にマーカー画像を表示させたいですが。。。
スタイルシートで
ul.side {
...
ul.side li {
中身はいっしょです。
と上記のように指定しても表示してくれません。
なにがいけないんでしょうか?
アドバイスお願いします。
>空煉遊さん
こんばんは。
ご利用ありがとうございます。
ご質問の件ですが、記事本文でHTMLにの設定に関する記述が不足しておりました。申し訳ございません。
先ほど追記致しましたのでご確認いただけますでしょうか。
以上です。
それではどうぞよろしくお願い致します。
こんばんわ、いつも困ってきてしまいます。
リストマークをなんとかつけることができたのですが、文字とマークの間がどうしても狭まらないのと、background-positionで少しずらそうと思ってもできないのです。
スタイルシートをすべて見てみたんですが、わからなくてよろしくお願いします。
リストマークさえできてませんでした。(-_-メ)
他のページに飛ぶと斜めになってしまうリストになったり最初のひとつしか出なかったりでした。ヒントをお願いします。
>bobinさん
こんばんは。
修正したものをこちらにおきましたのでご確認ください。
IEでしたら、ブラウザの[表示]→[ソースの表示]→[ソースの表示]でHTMLソースが参照できます。またスタイルシートのURLを指定すれば参照またはダウンロードできると思います。
なお修正箇所は下記の通りです。
メインページ:ul - li タグの修正
スタイルシート:下記の青色を修正、赤色を削除(場所は検索で探してください)
ul.side { list-style-image: url(".gif"); background-repeat: no-repeat; background-position: 5px 15px; list-style-type: none; padding-left: 2px; margin: 1px 0px 0px 2px; line-height: 150%; text-align: left; }ul.side li {
padding-left: 15px;
background: url("http://handmade.boo.jp/img/list-heart.gif") no-repeat 0px 0.4em;
list-style: none;
}.side li {
list-style-image: url(http://handmade.boo.jp/img/list-heart.gif);
background-repeat: no-repeat;
background-position: left 5px;
list-style-type: none;
padding-left: 3px;
margin: 1px 0px;
line-height: 150%;
text-align: left;
}
ul - li タグはマークアップが誤っていますので下記の構造になるようにテンプレートを修正してください。br タグは不要です。
<ul> <li>エントリータイトル1</li> <li>エントリータイトル2</li> <li>エントリータイトル3</li> : <li>エントリータイトルn</li> </ul>
以上です。
それではよろしくお願い致します。
こんにちは、yujiroさんのご説明通りやってみました。直すところが結構ありまして、でもなんとかできました。
タグの打ち間違いであんなにも変わってきてしまうのですね。
本当にいつも御世話になってすみません。
個別ページまで作成していただきありがとうございました。
こんなにいろいろしていただいてうれしい限りです。
>bobinさん
こんばんは。
ご連絡ありがとうございました。
お役にたてて良かったです。
文字化けについてはIEの[ソースの表示]で起動エディタを指定する方法が良いかも知れません。または Firefox であれば文字化けせずに表示します。
ではでは!
いつもお世話になっています。
コメントの確認覧のエラーについて、エントリーしてくださったとおりにすると
「comment name・・・」とまたエラーが出てきてしまったので、思い切って小粋空間様のテンプレートを使用させてもらいました。ありがとうございます。
そリストマークのずれを修正しようと、こちらで載せてくれているCCSと全く同じ(画像だけ異なる)ように指定したのですが、どうも画像がずれてしまうのでどこをいじればいいのか教えてください。
また、メインページなんですが、同じように設定しても画像で表示されずに●で表示されてしまう箇所もあります。そこの修正方法のアドバイスもどうかお願いします。
>みずほさん
こんばんは。
テンプレートご利用ありがとうございます。
ご質問の件ですが、リストマークのずれは 0.4em の部分を 0.8em に変更するとよくなりました。
メインページのリストマークはテーブルタグを削除するとすべて表示されましたのでHTMLのマークアップに問題がないかご確認ください。
それではどうぞよろしくお願い致します。
リストマークのずれの修正とリストマークの表示、できました!
ありがとうございました。
>みずほさん
こんばんは。
ご連絡ありがとうございました。
うまく表示されたようでよかったです。
ではでは!