CSS 経由で背景画像を使用して、サイトのいくつかの要素のスタイルを設定しています。Chrome と IE の両方で見られる問題は、行の行の高さが画像の高さよりも小さい場合、画像がトリミングされることです。ここに問題を示すフィドルがあります (これも Chrome または IE でこれを表示して問題を確認してください。Firefox は私が望むようにレンダリングします)。
HTML
<ul>
<li class="icon"><a href="#">Link 1</a></li>
<li class="icon"><a href="#">Link 2</a></li>
<li class="icon">No Link Here</li>
</ul>
CSS
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
ul li {
display: inline;
font-size: 13px;
margin: 0 1em 0 0;
padding: 0;
}
ul li.icon {
background: url(http://www.borngeek.com/images/2013/stack_overflow_ex_01.gif) no-repeat left center;
padding-left: 22px;
}
実際には、font-size をピクセル単位でハードコーディングしていないことに注意してください。13 ピクセルの高さでレンダリングされるだけです。問題を再現するために、ここに値をハードコーディングしました。
次のいずれも機能していないようです。
height
、line-height
、またはmin-height
さまざまな要素 (親要素も含む) の設定overflow
さまざまな方法で値を使用する
潜在的で問題のある回避策には、次のものがあります。
- フォントサイズをより大きなものに変更する
- 不明瞭
padding
な値を使用して画像がクリップされないようにする display: inline-block
独自の問題がある を使用する- を使用して
float: left
、これにもいくつかのニットがあります - この場合、CSS の代わりに要素を使用する
<img>
ことは間違っていると感じます - この回答
background-size
で見つけたCSSプロパティを使用しますが、これのサポートはむらがあります
これを処理するよりクリーンな方法はありますか、それとも上記の回避策のいずれかが私の最善の策ですか? 私の唯一の目標は、親要素が 16x16 の画像全体をレンダリングするのに十分な高さになることです。