在 IE6/7 中,display:inline-block
仅适用于默认内联的元素(例如,span)。因此,如果您尝试将 div 设置为display:inline-block
,它在 IE6/7 中将不起作用。
内联元素会将自身调整到其内容的宽度。一个 inline-block 元素默认会做同样的事情,如果它没有给出明确的宽度。如果 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 演示