1

私は、画面上のすべてが何らかのウィジェットまたはその他にある GWT アプリケーションを作成しています。つまり、通常の HTML には HTML ファイルから何もありません。

すべてのテキストを特定の Google Web フォントで表示したいと考えています。私の質問は、ある種の自動的な方法でフォントをウィジェットに適用する方法ですか? body{} に font-family CSS を配置すると、どのウィジェットもそのフォントを取得しませんが、通常の HTML は取得します (そして、私が言うように、そのようなものはありません)。

一方、スタイルシートでは、現時点でこのようなことを避けたいと思っています。

.gwt-Label, .gwt-TextBox, .gwt-Button, .gwt-DialogBox .Caption, .gwt-EveryOtherKindOfWidget....
{
    font-family: Quattrocento, serif;
}

だから私の質問は、このフォントを継承するためにすべてを取得するにはどうすればよいですか? ここでかなり基本的な何かが欠けているに違いないと感じています。誰でも助けることができますか?

ありがとうニール

4

1 に答える 1

1

したがって、ここにはいくつかの問題があります。

デフォルトの GWT テーマ (標準) には、standard.css ファイルが含まれています。このファイルには、すべてのウィジェットのスタイル定義が含まれています。テーマは、モジュールの xml ファイルで定義されます。

<inherits name='com.google.gwt.user.theme.standard.Standard'/>

ウィジェット スタイルをオーバーライドする方法には、さまざまな方法があります。

  1. standard.css ファイルをコピーし、アプリの ClientBundle に CSSResource として含め、モジュールの xml ファイルから inherit 行を削除します。
  2. モジュールの xml ファイルの inherit 行の後に、standard.css で定義されたウィジェット スタイルをオーバーライドするスタイルシートを追加します (詳細については、こちらを参照してください)。

すなわち:

<inherits name='com.google.gwt.user.theme.standard.Standard' />
<stylesheet src="CustomStylesheet.css" />

standard.css スタイルシートを見ると、ウィジェットがフォントを定義していないことがわかります。それは実際にボディスタイルから継承されています。

standard.css からの抜粋:

body, table td, select {
    font-family: Arial Unicode MS,Arial,sans-serif;
    font-size: small;
}

したがって、おそらくカスタム スタイルシートの本文部分を Google フォントでオーバーライドするだけで、すべてのウィジェットがそれを継承します。

ここで 2 番目の問題が発生します: スタイルシートの優先順位/継承のため、Google フォントの読み込みはそれほど簡単ではありません。
このwikiでは、Google フォントを GWT アプリにロードする方法について説明します。

于 2011-07-06T08:29:43.833 に答える