2

特定のフォーム項目に表示される不要なスクロールバーについてアドバイスを求めています。問題のスクリーンショットを以下に示します。不要なのは一番右のスクロールバーであることに注意してください。

bad_scrollbars http://img21.imageshack.us/img21/9307/scrollfu.png

overflow: auto;犯人は、gecko ベースのブラウザーのウィンドウ内のフォーム項目に追加する次の css のようです (問題は Firefox で発生します)。

.ext-gecko .x-window-body .x-form-item {
    outline: medium none;
    overflow: auto;
}

このスタイルを削除すると問題は解決しますが、副作用の可能性を警戒しています。まだ気付いていませんが、このスタイルが含まれているのには理由があります。

Ext スタイリングについて詳しく知っている人は、この css をオーバーライドしてoverflow: auto;スタイルを削除すると他の問題が発生するかどうかを知っていますか?

余談ですが、これは (今のところ) 特定のコンポーネント (Ext.ux.form.MultiSelect コンポーネントのカスタム拡張) に関する問題に過ぎません。他のコンポーネントはより多くの垂直方向のスペースを使用しますが。これの考えられる理由を知っている人はいますか?

助けてくれてありがとう。

4

1 に答える 1

1

オーバーフロー: auto は、要素のコンテンツが要素のクライアント領域からパディングを引いたものよりも大きい場合、要素にスクロールバーを追加するようブラウザに指示します。CSS でスクロールバーを削除すると、まさにそれが実現します。何があってもスクロールバーが消えます。

回避策の副作用は、クライアントの外部にコンテンツがある場合、ユーザーはそれを見ることができないということです。さらに、これはこのフォームだけでなく、カスタム クラスで回避策を適用しない限り、アプリケーションのすべてのフォームで発生します。

正しい解決方法は、コンテンツ領域がフォームのクライアント領域よりも大きい理由を突き止めることです。DOM を調べて、コンテナーのサイズとすべての子項目のサイズを確認できるので、Firebug はこれに大きな助けとなります。

あなたの明確な選択コントロール (これはカスタム コントロールですか?) が適切にサイズ設定されていないと思われます (つまり、フォーム レイアウトでは x ピクセルの高さを指定していますが、実際には x+1 のサイズに設定されています (マージンとパディングを思い出してください)。 . フォーム レイアウトは、ラッパー領域 (スクロール バーのある領域) の大きさを決定するためにすべての作業を行っており、コントロールはその領域内に収まる必要があります。

于 2011-01-14T13:15:19.147 に答える