2

私は通常、SO で質問をする前にプログラミングの疑問を解決しますが、答えを見つけることができないように見えるのはこれが初めてです....だから...ここで、数時間後にサイトへの最初の質問に行きますこれを解決しようとする:

¿ ワンタイム CSS 式を作成する方法は?


なぜワンタイム式なのか?: TEST のようなものを実行する場合 (IE6 と IE7 では警告が何度も表示されるので注意してください...):

<div style="height:expression(alert('this alert repeats itself'));">
  content with infinite alert...
</div>

式は時間の終わりまで評価されます...そのため、2°の記事で説明しようとしているスタイル自体を上書きするなど、一度だけ実行する方法を理解したいのですが、実際には取得できませんそれは働くために....


この記事で読むことができるように:

http://developer.yahoo.com/blogs/ydn/posts/2007/07/high_performanc_6/

式が繰り返され、パフォーマンスの問題になる可能性があります...

次に、この記事:

http://vacskamati.blogspot.com/2008/10/one-time-execution-of-ie-css.html

これは、これを解決しようとしていることがわかった唯一のものです...しかし、私はそれを正しく理解できないようです....

私がやろうとしていることは... IEで「最大幅」と「最大高さ」をエミュレートすることです...私はFFを知っており、他の人はCSSで直接それを行うことができます..何とかそれを機能させる必要がありますIE6およびIE7で...

外部でJSを使用できることはわかっていますが、コードでわかるように... PHPの値を入れようとしています...そのため、式に直接制御を加えて、一度だけ自動的に実行する必要があります他の場所で JS 関数を記述する必要はありません....これは非常に単純なはずだと思います...しかし、私はそれを得ることができます...とにかく...私のコードはこれに似たものです....:

<div id="div_id" 
     style="
            max-height:<?php echo $height_var; ?>;
            -$height: 
                expression( 
                           if(document.getElementById('div_id').offsetHeight><?php echo $height_var; ?>){ 
                            document.getElementById('div_id').style.height = '400px'
                           }

                          );
            overflow:scroll;
            " >
  content--lbalbalbalbalblablablalb
</div>

うーん...うーん、それが基本的な考え方です...私はすでに上記の記事が説明しようとしているさまざまな方法を試しました.私はすでに男にメールを送ろうとしましたが、うーん、可能な答えを待っている間に、この問題を明らかにします. SOコミュニティにとって、単純かもしれないと思う何かに対する答えを見つけることができないのは非常に奇妙です...

だから今のところ...私が知っている限り、EXPRESSIONはそれ自体を繰り返します..元のコンテンツが400pxより大きい場合はSCROLLを取得します....しかし、それ自体が繰り返されることはわかっています...「アラートを送信した場合()" それは常に表示されます....そう....また、1回限りの表現を実現するにはどうすればよいですか...したがって、IEはmousemoveまたはアクションを評価しません....

前もって感謝します =) (そして、私の奇妙なインデントされたコードで申し訳ありません...=P )

4

2 に答える 2

0

何が欲しいのか正確にはわかりませんが、これがお役に立てば幸いです。

最大幅をエミュレートします。

* html div#division 
{ 
   width: expression( document.body.clientWidth > 776 ? "777px" : "auto" ); /* sets max-width for IE */
}
div#division 
{ 
   max-width: 777px; /* this sets the max-width value for all standards-compliant browsers */
}

最大高さをエミュレートする

* html div#division 
{ 
   height: expression( this.scrollHeight > 332 ? "333px" : "auto" ); /* sets max-height for IE */
}
div#division 
{
   max-height: 333px; /* sets max-height value for all standards-compliant browsers */
}

http://perishablepress.com/press/2007/01/16/maximum-and-minimum-height-and-width-in-internet-explorer/

1回限りのcss式はサポートされなくなったことに注意してください。 http://blogs.msdn.com/b/ie/archive/2008/10/16/ending-expressions.aspx

于 2011-08-25T10:20:34.617 に答える
0

max-width と max-height DOは IE で動作します (6 ではバグがあります)。次のことを確認してください。

  • 追加!重要:style="max-height: 200px !important"
  • DOCTYPE "-//W3C//DTD XHTML 1.0" を追加

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"> <div style="border: red thin dotted; max-height: 40px !important; overflow: hidden"><pre>qwerty qwerty qwerty</pre></div>

于 2011-08-30T11:26:35.490 に答える