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;

すべてのクロムとFFで正常に動作します

edit2:「コンテナ」オブジェクト自体が本体に追加される前と後の両方に画像を追加しようとしました。どちらも期待される結果を生成しません。

編集 3: * IE7 と IE9 は上記のように動作しません。これはIE 8専用です*

4

2 に答える 2

0

したがって、問題は「hasLayout」IE 8 バグでした。コンテナー div の幅を「auto 以外」に設定すると、表示され、意図したとおりに動作/表示されるようになります。

楽しい時間、助けてくれてありがとう。

于 2012-05-04T16:58:42.017 に答える
0

これは以前に見たことがありますが、どのように解決したか正確には覚えていません。コンテナー内に別の div を配置し、その div に画像を追加してみてください。ラッパー div は、多くの場合、IE の問題を回避します。

于 2012-05-03T21:51:54.070 に答える