0

LayoutPanels 内にある ScrollPanel 内の FlexTable のセル内にラベルがあります。ScrollPanel (およびその親 LayoutPanels) のサイズは、ユーザーのデバイスのウィンドウのサイズに基づいて動的に設定されます (したがって、正確な CSS サイズは使用されません)。FlexTable、そのセル、およびラベルの幅が に設定されてい100%ます。また、FlexTable はfixedテーブル レイアウトを持つように設定されています。そして、ラベルには次のワードラップ設定が与えられますbreak-word. ほとんどの場合、これで問題なく動作します。短い単語を含む文は問題なく次の行に折り返され、Label はテーブル セルを含むのと同じサイズのままです。ただし、単語が収まるように 2 行に分割する必要がある場合 (ページへのリンクがここに頻繁に配置されるためによく発生します)、ラベルの幅は、それを含むセルのサイズを超えて自動的に拡張されます。これは GWT がラベルのサイズを変更した結果であることはわかっていますが、これを防ぐ方法がわかりません。単語区切りをに設定しようとしましたbreak-all、しかし、これにより、短い単語が行末に到達して分割されます(「this」が「th」と「is」になるなど)。これはばかげています。とにかく、この設定を動的に保ちながら、GWT ラベルをそれを含むセルの幅の 100% にし、それを超えて拡張させないようにすることはできますか? どうもありがとう!

4

2 に答える 2

1

実際、これに対する良い解決策はないと思います。通常のポイント (空白) でのみ改行を許可するか、単語内で改行できますが、CSS だけでは短い単語の改行を防ぐ方法はありません。

リンクが問題を引き起こしているので、私ができる最善の提案は、何らかの方法でリンクを短くすることです。表示できる文字数は限られているかもしれません。リンクをクリックできる場合、これは大きな問題にはなりません。

または、ラベルまたはセルに固定サイズを設定し (% 単位でもかまいません)、overflow-x分割できない非常に長い単語がある場合に突き出たテキストのビットを非表示にするために使用できます。

于 2013-08-17T22:55:54.750 に答える
0

どうやらパーセンテージが問題を引き起こしているようです。幅に px 値を指定すると、長い文字列は制限に達すると折り返されます。もちろん、私は動的にサイズを変更しているので、この px 値をより複雑な方法で取得する必要があります。これを行う方法は、 を使用Window.getClientWidth()してユーザーの画面の幅を取得することです。次に、この割合を使用するたびに、CSS で使用する割合に基づいて px 値を手動で計算する必要があります (33 を取得するため)。 100 ピクセルの % を指定すると 33 ピクセルになります。余分なピクセルをいつ追加する必要があるかを手動で確認する必要があるため、見逃すことはありません)。次に、スクロール パネルの場合は、スクロール バーを除いたパネル幅を減算して取得できます。NativeVerticalScrollbar.getNativeScrollbarWidth()現在のパネル幅から。とにかくスクロールパネルまでのウィンドウサイズに基づいて各パネルのピクセルサイズをすでに計算していたので、この方法はうまくいきました。

于 2013-08-18T01:12:59.560 に答える