0

同じ CSSResource に対して 2 セットの CSS ルールを定義する 2 つの CSS ファイルがあります。あるcssファイルのスタイルが他のcssファイルのスタイルを上書きしないように、何らかのスコープを適用できますか?

簡単な例:

CSSリソース

public interface Style extends CssResource {
String box_bkg();
}

Style1.CSS

.box_bkg {
background-color: red;
}

Style2.CSS

.box_bkg {
background-color: yellow;
}

クライアントバンドル

public interface BoxBundle extends ClientBundle {
    @Source("css/Style1.css")
    MyClass.Style redBoxStyle();

    @Source("css/Style2.css")
    MyClass.Style yellowBoxStyle();
}

生成された HTML を見ると、難読化されたクラス名は、それがどの BoxBundle メソッドからのものかに関係なく同じであることがわかります。したがって、ボックスはすべて黄色または赤色です。難読化された名前が同じ場合、ボックスのスタイルを変えるにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

難読化されたクラス名は、CssResourceサブインターフェースとメソッド名から計算されます。別のクラス名が必要な場合は、少なくとも 1 つのサブインターフェイスを作成し、MyClass.Styleそれを のメソッドの戻り値の型として使用する必要がありBoxBundleます。目標は、2 つのメソッドの戻り値の型が異なることです。

public interface BoxBundle extends ClientBundle {
   @Source("css/Style1.css")
   Style1 redBoxStyle();

   @Source("css/Style2.css")
   Style2 yellowBoxStyle();

   interface Style1 extends MyClass.Style { }
   interface Style2 extends MyClass.Style { }
}

https://code.google.com/p/google-web-toolkit/issues/detail?id=6144も参照してください。

于 2013-01-15T01:47:55.503 に答える