メニューバーでは、通常、サブメニューが右側に表示されます。私は左手側に変更したい。誰でも私に教えてください、どうすればいいですか?GWTサブメニューの変更ポップアップロケーション
答えて
ポップアップ位置がメニュー項目の位置に基づいて、レンダリングにCSS要素によって定義されます。それは、生産メインメニュー経由のFirebugを探し
:
element.style {
clip: rect(auto, auto, auto, auto);
left: 337px; // Change this to left:35px;
overflow: visible;
position: absolute;
top: 319px;
visibility: visible;
}
// This is main CSS for popup
.gwt-MenuBarPopup{
}
そうで、私もCSSを変更することにより、ソリューションを実装することができましたコード
私は再び、私はGWT-要素のいくつかの標準的なビューを変更しなければならなかったときGWTは:)私は私のプロジェクトで、この方法を使用するデフォルトのスタイルを上書きすることをアドバイス。サブメニューの
私は、それだけでそれができることを知っています。しかし、どのスタイルを上書きする必要があるのか教えてください。 – PVR
Firebugにサンプルのメニューバーを開き、メニューバーのすべてのアイテムにCSSスタイルのクラス "gwt-MenuItem"があることを確認しました。また、各項目には、 "gwt-uid-1"、 "gwt-uid-2"などの識別子があります。要素の既定のスタイルをオーバーライドする場合は、ホストページ、CSSファイルに接続し、必要な罫線とIDの新しいプロパティを作成します。 GWTスクリプトを接続した後に、CSSファイルをホストページのセクションヘッダーの最後に接続することをお勧めします。そうしないと、デフォルトのスタイルを変更できません。あなたがしたい場合、私はそれをしたようにポイントを記述することができます) –
からsetStyleName("css goes here")
を使用してそれを試してみます。多分これは最もエレガントな方法ではないが、それは機能する。 GwtQueryのclosest()メソッドの助けを借りて、ここに簡単な例を示します。
menuBar.addAttachHandler(new AttachEvent.Handler() {
@Override
public void onAttachOrDetach(AttachEvent event) {
if(event.isAttached()){
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
Element e = $(menuBar).closest(".gwt-MenuBarPopup").get(0);
e.getStyle().setLeft(parentMenuBar.getAbsoluteLeft()-menuBar.getOffsetWidth() , Unit.PX);
}
});
}
}
});
子供のサブメニューが添付されていると考えられるので、CSSを変更する必要があります。私はGWTのデフォルトのMenuBar実装がそれを設定した後にcssを変更するように、遅延コマンドを使用します。 この行 "$(menuBar).closest("。gwt-MenuBarPopup ")。get(0);"変更したいクラス.gwt-MenuBarPopupを持つ要素が見つかるまで、DOMツリーを検索します。
私のソリューションは、やや、これまでここに掲載それらのハイブリッドのですが、私はそれがそれらのいずれかよりも簡単/きれいだと思います。
各垂直サブメニューは
MenuBar
自体は、トップレベルMenuBar
に項目として追加。どちらのサブメニューでも、右の代わりに左にドロップしたい場合は、MenuBar
ウィジェットの.addStyleName("myLeftDropDownStyleName")
を使用してスタイルクラス名を追加します。(これらは、私は左のドロップを取得するために必要であった最低限の属性です)このようなそのスタイルのためのセレクタルールを定義します。最初からの相対
.myLeftDropDownStyleName{ position: absolute; right: 0px; }
Absolute位置static以外の位置を持つ親要素。少なくとも私の場合、親の位置は、この解決策がなければドロップダウンに左端がある水平な場所のようでした。 Relativeポジションが他の人のケースでうまくいくかもしれないと私は驚かないだろう。
0PXのオフセット右は、私は上記のように水平な場所にあると絶対位置の右に指示します。そしてもちろん、ピクセルサイズはそれ以上左にプッシュするために0以上にすることもできますし、< 0でもそれを右に戻すことができます。
これは私のために完璧に動作し、簡単な&きれいで、(私はあなたがGWTメニューバーのスタイルその人自身のいずれかをオーバーライド場合ケースだと思うと)このスタイルを持っているあなたのMenuBarののすべてを強制するものではありません。
- 1. GWTロケール変更
- 2. GWTのRadioButtonの変更ハンドラ
- 3. gwt-フレーム応答URL変更
- 4. GWTのDockLayoutPanelsのサイズ変更とスクロール
- 5. GWT DataGridの変更行のフォントサイズ
- 6. GWTタブのCSSを変更する
- 7. GWTプロジェクトをMavenプロジェクトに変更
- 8. GWT - java.util.Listの変更時にウィジェットを更新します。
- 9. サブメニュー
- 10. GWTサーバサイドコードの変数
- 11. GWT UIBinderテンプレートのSplitLayoutPanelのドラッカーのサイズを変更する方法
- 12. GWTスパンの色の変更同クラスの要素
- 13. コンテキストメニューのWPFサブメニュー
- 14. jQuery:サブメニューのホバリング
- 15. JComboのサブメニュー
- 16. css/htmlのサブメニュー
- 17. GWTのSuggestBoxの構築後にSuggestOracleを追加/変更する
- 18. GWTテキストボックスの境界線の色を変更する方法
- 19. 入力ウィジェットのセットに対するGWTトラックの変更
- 20. GWTのブラウザウィンドウのプログラムによるサイズ変更
- 21. CSSサブメニュー
- 22. navigationControllerサブメニュー
- 23. GWT StackLayoutPanel:ヘッダーの背景色を変更する方法
- 24. gwt/gxtプロジェクトのhtml bodyタグ属性を変更するには
- 25. リリース時にGWTのuser.agentを変更する
- 26. 画像のサイズを変更するGWT画像クリックハンドラー
- 27. GWT CellTable列のサイズ変更/並べ替え
- 28. スマートgwtでvPanelのメンバを変更する方法
- 29. GWTエディタの変更を破棄する方法
- 30. GWT:ルート(?)パネルのパネルタイプを変更するには?
ちょっとHardik、URのお返事ありがとうございます。私は同じことをしてそれを達成しました。 – PVR
Ranna:よく聞いてください –
実際には ".gwt-MenuBarPopup"のメニューグループではなく、ポップアップのメニューグループに実際にaddStyleNameを行うことができます。メニューバーのポップアップは、ユーザーの操作(ホバー、クリック)に応じて必要になるまで作成されないため、ポップアップをそのインデックスでスタイルすることさえできません。そのDOMコンテナには親が全くないので、実際にはその親によっても。私はもう一つのポップアップの位置を別のものとする方法を見つけていません(たとえば、最後にポップアップする必要があるのは最後のアイテムです)。 MenuBarクラスのアラインメント能力を持たないことを大いに監視しているようです。 – eon