YUI の Dialog ウィジェットを使用すると、大きなダイアログ (多くのコンテンツを考えてください) でページに顕著な副作用が現れることを除いて、うまく機能します... ページの最後に大量の空白とスクロールバーが表示されます。
次に例を示します。
私が行ったのは、developer.yahoo.com/yui/examples/container/dialog-quickstart_clean.html にあるダイアログの元の例を取り上げ、さらにマークアップを (Lorem Ipsum の形式で) 追加することだけでした。
コードの設定方法を見ると、Yahoo.util.Event.onDomReadyが起動し、Dialog が
YAHOO.example.container.dialog1 = new YAHOO.widget.Dialog("dialog1",
{ width : "30em",
fixedcenter : true,
visible : false,
constraintoviewport : true,
buttons : [ { text:"Submit", handler:handleSubmit, isDefault:true },
{ text:"Cancel", handler:handleCancel } ]
});
この時点で、<div id="dialog1">すべてのマークアップを保持しているプレーン ジェーンがコンテナによってラップされ<div class="yui-panel-container yui-dialog yui-overlay-hidden shadow" id="dialog1_c" style="visibility: hidden; z-index: 2; left: 307px; top: 10px;">ます。
これは問題ありませんが、このコンテンツがまだ私のレイアウトの大部分を占めており、スクロールバーと垂直方向のスペースが存在します。display:none や height:0; のように yui-overlay-hidden にスタイルを追加しようとすると、overflow:hidden を表示すると、オーバーレイが正しく配置されないなどの奇妙な副作用が発生します。これまでのところ、実際に影響を与えた唯一の方法は、 #dialog1 を含む div に height:0; を配置することです。overflow:hidden ですが、これは IE7 では機能しません (初期化後もページに空白が残っています)。
助けてくれてありがとう、本当に感謝しています。