オプション1:テーマをまったく使用しない
デフォルトのスタイルが不要で、通常はページに独自のスタイルを付けたい場合は<inherits>
、テーマのステートメントを完全に省略するのが最も簡単です。GWTは、テーマを使用しなくても非常にうまく機能します。
(注:テーマの(画像)リソースがまだ必要であるが、CSSスタイルシートをページに挿入せずに、com.google.gwt.user.theme.clean.CleanResources
代わりに継承することができますcom.google.gwt.user.theme.clean.Clean
。これにより、それらは引き続き自動的にwarフォルダーにコピーされます。)
オプション2:ボタンのテーマを選択的にオフにする
ただし、一般的にテーマを使用し、一部のボタンに独自のスタイルを与えるだけでよい場合は、簡単な解決策は次のようになります。
button.removeStyleName("gwt-Button");
注:代わりにremoveStyleName()
を使用することもできますsetStyleName("my-Button")
。
利便性のために(そしてUiBinderでより簡単に使用するために)、次のような独自のクラスを派生させることができます。
package org.mypackage;
public class MyStyleButton extends Button {
public MyStyleButton(final String html) {
super(html);
removeStyleName("gwt-Button");
}
/* ... override all the other Button constructors similarly ... */
}
その後、インポートしてUiBinderで使用できます。
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:my='urn:import:org.mypackage'>
...
<my:MyStyleButton>...
オプション3:実際にgwt-Buttonクラスの属性を変更する
ボタンのテーマのある外観を維持し、いくつかのスタイル属性のみを変更したい場合は、事前定義されたスタイルクラスの特定の属性を!important
(@bouhmid_tunによって提案されているように)上書きすることもできます。ただし、注意してください。属性のリストは将来変更される可能性があります。.gwt-Button
便宜上、GWT2.4.0の事前定義されたすべてのスタイルクラスを次に示します。
.gwt-Button {
margin: 0;
padding: 5px 7px;
text-decoration: none;
cursor: pointer;
cursor: hand;
font-size:small;
background: url("images/hborder.png") repeat-x 0px -2077px;
border:1px solid #bbb;
border-bottom: 1px solid #a0a0a0;
border-radius: 3px;
-moz-border-radius: 3px;
}
.gwt-Button:active {
border: 1px inset #ccc;
}
.gwt-Button:hover {
border-color: #939393;
}
.gwt-Button[disabled] {
cursor: default;
color: #888;
}
.gwt-Button[disabled]:hover {
border: 1px outset #ccc;
}