0

当我在其中的任何元素的样式中指定 aheight时,IE 使整个事物的宽度为 100%,而不是使其宽度保持“自动调整大小”。

其他浏览器显示它很好,但不是 IE。我该如何解决?

<div style="position:absolute;top:50px;left:50px;background:green;">
 <div>
  <div>test</div>
  <div style="height: 20px;">this makes it 100% width in IE.  why?</div>
 </div>
</div>

谢谢!

4

2 回答 2

1

这里有一些可能对你有用的东西。这有点 hacky,但是如果您想为某些文本找到合适的宽度,这是我所知道的除了 javascript 之外的唯一方法。我们基本上是通过不允许线条中断来强制宽度。如果需要换行,可以输入<br/>s。

<div style="position:absolute;top:50px;left:50px;background:green;width:0px">
 <div>
  <div>test</div>
  <div style="height:50px; white-space:nowrap">This is normally sized in IE6</div>
 </div>
</div>

再三考虑,不要查看链接。它很旧,不像宣传的那样工作。

老答案:

http://snippets.dzone.com/posts/show/216

我相信非绝对定位的 DIV 会自动扩展以水平填充其容器。由于您没有为此 div 指定任何容器大小,因此它会展开以填满整个页面。

我觉得 Firefox 不扩展 div 很奇怪……我不确定他们中的哪一个实际上“正确”。

于 2009-01-26T20:05:21.187 回答
0

猜测一下,我会说这与 IE6 中的 hasLayout 错误有关。我的建议: 1. 给包含的 div(具有绝对定位的那个)设置宽度。2. 发布一个你想要达到的目标的例子。我们也许可以建议一种对所有浏览器都更友好的方式来做你想做的事。

于 2009-01-27T15:27:13.213 回答