gpt4 book ai didi

css - hr 使父 div 在 IE7 中调整为 100%

转载 作者:行者123 更新时间:2023-11-28 18:42:31 24 4
gpt4 key购买 nike

我有以下div

<body>
<span style="border:1px solid red; display:inline-block">
Some text<br />
<hr />
some more text
</span>
</body>

在“普通”网络浏览器中,计算 div 的宽度以适应文本。 hr 是 div 的 100%。 enter image description here

但在 IE7 中,hr 会导致 div 扩展到主体的 100%。 enter image description here

我需要在某处添加任何聪明的 css 以便它在 IE7 中正常运行吗?

请注意,我无法设置任何固定宽度。

最佳答案

在 IE6/7 中,display:inline-block 仅适用于默认内联的元素(例如,span)。因此,如果您尝试将 div 设置为 display:inline-block,它将无法在 IE6/7 中运行。

内联元素会根据其内容的宽度调整自身大小。一个内联 block 元素默认情况下会做同样的事情,如果它没有给出明确的宽度。如果 hr 是 100%(其父项的 100%,它又是子项的 100%),那么 hr 宽度的循环定义可能无法按预期工作(什么的 100%?本身的 100%) .

为避免在某些浏览器(尤其是 IE6/7)中无法按预期工作的宽度的循环定义,hr 的容器(div、span 或其他)应该有定义的宽度(以 px 为单位, %, 或 em) 或 hr 本身应该有明确的宽度(以 px 或 em 为单位)。否则,宽度不会以任何可识别的方式定义,默认情况下由浏览器决定做什么。

如果您不能设置任何宽度,则可能无法使用 hr 标签。根据我运行的测试,这些选项对于 CSS 解决方案来说也不是很好(没有设置宽度)。

编辑:

我认为在不设置宽度或不依赖 JavaScript 或 jQuery 的情况下做到这一点的唯一方法是,是否可以在每行文本之后有一条水平线(包括环绕到下一行的任何长段落,如果有的话)是任何)。在这种情况下,您可以将背景图像添加到包含水平线的容器中,水平线的增量等于文本的行高,显示的垂直偏移量等于行高,因此行不会出现在顶部第一行文本。

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 demo

关于css - hr 使父 div 在 IE7 中调整为 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11247899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com