正如标题所说,这基本上是发生了什么:
<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 独有的 *