IE6/7 では、display:inline-block
デフォルトでインラインになっている要素 (スパンなど) でのみ機能します。したがって、div をdisplay:inline-block
に設定しようとすると、IE6/7 では機能しません。
インライン要素は、そのコンテンツの幅に合わせてサイズ変更されます。明示的な幅が指定されていない場合、インライン ブロック要素はデフォルトで同じことを行います。hr が 100% (親の 100%、つまり子の 100%) の場合、hr 幅の循環定義があり、期待どおりに機能しない可能性があります (何の 100%? それ自体の 100%)。 .
一部のブラウザー (特に IE6/7) で期待どおりに機能しない可能性がある幅の循環定義を回避するには、hr のコンテナー (div、span など) に定義された幅 (px、%、またはem) または hr 自体に明示的な幅 (px または em) が必要です。それ以外の場合、幅は識別可能な方法で定義されておらず、デフォルトで何を行うかを決定するのはブラウザーに任されています。
幅を設定できない場合は、hr
タグの使用が除外される可能性があります。また、私が実行したテストに基づいて、オプションは CSS ソリューションにもあまり適していないようです (幅を設定しない場合)。
編集:
幅を設定したり、JavaScript や jQuery に依存したりせずにこれを行う唯一の方法は、テキストの各行の後に水平線を入れることが許容されるかどうか (存在する場合は、次の行に折り返される長い段落を含む) だと思います。 . その場合、行が上部に表示されないように、テキストの行の高さに等しい増分で水平線を含むコンテナーに bg 画像を追加し、行の高さに等しい垂直オフセットで表示することができます。テキストの最初の行の。
HTML
<div class="main">
<p>This is the first line.<br/>
This is the second line.<br/>
This is a long line that will wrap around to the next line if the container is not very wide.
</p>
</div>
CSS
.main {
background: url(image.png) repeat-x left 15px;
}
p {
font-size: 12px;
line-height: 15px;
}
jsfiddle デモ