2009-05-06 7 views
0

IE6/7で再表示されません絶対私には、以下のCSSクラスがあります。CSS:可視性を持つクラスを削除する:隠された/位置:

.hidden { 
    visibility: hidden; 
    position: absolute; 
} 

を、私はそれにそのクラスを持つdiv要素を持っています。クラスを削除すると、divは表示されません。しかし、2回目に私はそれを削除すると、divが表示されます。どんな考え?このためYUIを使用してスタンドアロンの例を参照してください:

http://avernet.googlepages.com/ie-visibility.htmlPastie上のコードも利用可能)

注:私は(それ以外の場合は働いていると思われる)私の場合display: noneを使用することはできません。

答えて

0

IE用のナッジテクニックを使用すると、私はこのwikiに関するさらに詳しい情報を追加しました:見出しCell content remains hidden on IEを探してください。

/** 
* Nudge element after a short delay for IE6/7 to force IE to "do the right thing". 
*/ 
nudgeAferDelay: function(element) { 
    if (YAHOO.env.ua.ie != 0 && YAHOO.env.ua.ie <= 7) { 
     window.setTimeout(function() { 
      element.className = element.className; 
     }, ORBEON.util.Utils.getProperty(INTERNAL_SHORT_DELAY_PROPERTY)); 
    } 
} 
0

「position:absolute;」と関係があるようです。その行を削除した場合、またはそれを追加すると、

div { position:absolute; } 

も同様に動作します。

+0

デビッド:はい、それは位置せずに動作します:

そしてここでは我々はOrbeonフォームコードで使用している微調整のための実装である絶対的に、しかし、あなたは入れていない場合position:absolute、あなたが隠すコンテンツはまだ私が望むものではないページ上のスペースを取る。 – avernet

+2

「display:none;」を使用できないのはなぜですか?それで? 「visiblity:hidden」を使用する唯一の理由は、ページ上のスペースを維持することです。 – David

+1

@David、div内にあるいくつかの「ウィジェット」は、div:display:noneで非表示にすると正しく初期化されません。代わりに、visibility:hiddenを使用し、divが画面外にレンダリングされていることを確認して問題を解決します。例えば、YUIの人がここで言うべきことを参照してください:http://developer.yahoo.com/yui/examples/editor/switch_editor.html(そのページでは、 "それは推奨されていません")を検索してください。 – avernet

1

visibility: hiddenの代わりにdisplay: noneを意味しますか?

+0

いいえ、この場合はvisibility:hiddenを使用する必要があります。そして、それは動作しません。したがって、問題です。 – avernet

+1

position:absoluteを使用すると、ドキュメントフローからdivを取り除くので、display:noneとvisibility:hiddenの違いはありません。 – jeroen

関連する問題