0

GWT 2.5.1 を使用してマルチモジュール アプリケーションを開発しています。GWT テーマは使用していません。ButtonCheckBoxなど、一部の GWT ウィジェットのスタイルをカスタマイズしたいと考えています。

2 つの解決策があります。

  • アプリケーションに読み込まれた CSS ファイルを記述します (HTML ページ内のリンク)。CSS には、ボタンの .gwt-Button やチェックボックスの .gwt-CheckBox、.gwt-CheckBox-disabled など、GWT で定義された名前を使用する CSS ルールが含まれます。このソリューションは、GWT コンパイラーによる CSS の最適化を利用していません。
  • ボタンまたはチェックボックスを使用するたびに、CssResource を使用してスタイル名を設定します。このソリューションは CSS の最適化を利用しますが、新しいウィジェットを作成するたびにスタイル名を設定する必要があります。

他の解決策はありますか?どれが正しいですか?

4

4 に答える 4

0

私は個人的に emanuele のソリューションを使用しますが、別の方法を提供するために、ウィジェットのgetElement()メソッドを使用してスタイル名に直接アクセスできるため、本当に必要な場合は、作成したスタイル名でスタイル名をオーバーライドできます。ただし、複数のスタイルを持つ大きなウィジェットやパネルでは、これはかなり難しくなります。

于 2013-08-09T18:50:55.323 に答える
0

スタイルを設定したいウィジェット (MyButton など) をサブクラス化し、サブクラスに、作成される各ウィジェットにスタイル名を追加するか、 への呼び出しを使用してインラインでスタイル設定を行うことができますthis.setWidth(), this.getElement().getStyle.setXXX

また、GWT コンパイラーは CSS に対してどのような最適化を実行しますか? 衝突を避けるためにスタイル名を難読化することは知っていますが、CSS を最適化できるかどうかはわかりません。

于 2013-08-08T12:45:07.347 に答える
0

その他の解決策: ボタンは html 要素buttonで、チェックボックスは html 要素input[type=checkbox]です。したがって、これらの要素にスタイルを設定し、特定の状態に css セレクターを使用できます。すなわちbutton:disabled。そうすれば、スタイル名を設定したり、余分なスタイル名をたくさん用意したり、よりクリーンな css を使用したりする必要がなくなります。

于 2013-08-07T14:13:42.007 に答える