0

正如标题所说,这基本上是发生了什么:

<div id='container' style='display:block; position:absolute; width:auto; height:533px;overflow:hidden;white-space:nowrap;'>
  </div>

在用户交互时 - 我做了一些工作:请求一些 JSON,构建元素,然后将所述元素附加到“容器”div。结果是这样的:

<div id='container' style='display:block; position:absolute; width:auto; height:533px;overflow:hidden;'>
   <img src="A REAL, VALID URL" border='0'/>
   <img src="A REAL, VALID URL" border='0'/>
   <img src="A REAL, VALID URL" border='0'/>
   <img src="A REAL, VALID URL" border='0'/>
   <img src="A REAL, VALID URL" border='0'/>
 </div>

现在发生了什么事。如果孩子被附加到这个并且他们超过了父母的高度。父母消失了。

我追求“hasLayout”和所有的爵士乐——没有任何效果。

起作用的是,如果孩子的大小相同或更小- 但由于我想要完成的工作的性质,这是不希望的 - 也不能保证他们会更小。

height:auto不起作用,但设置一个大于最大孩子的值可以解决这个问题 - 但会扭曲我的布局

提前致谢。

编辑:图像是通过 JSON 和延迟队列的组合加载的。保证在将它们附加到容器元素之前加载它们。

基本上 :

var img = new Image();
img.onload = function () { theContainer.appendChild(this);};
img.src = someURL;

在所有 chrome 和 FF 中都可以正常工作

edit2:我试图将图像都附加到“容器”对象之前和之后将其本身附加到正文。两者都不会产生预期的结果。

编辑 3:* IE7 和 IE9 的行为与上述不同。这是 IE 8 独有的 *

4

2 回答 2

0

我以前见过这个,但我不记得我是如何解决它的。您可以尝试在容器中放置另一个 div 并将图像附加到该 div 中,包装器 div 经常解决 IE 问题。

于 2012-05-03T21:51:54.070 回答
0

所以问题是“hasLayout”IE 8 错误。通过将容器 div 的宽度设置为“自动以外的其他内容” - 它现在可见并且可以按预期工作/显示。

欢乐时光,谢谢大家的帮助。

于 2012-05-04T16:58:42.017 回答