2013-10-29 12 views
9

widthプロパティがautoに設定されているdivにテキストをラップする必要があります。widthを指定せずにdivに "word-wrap:break-word"を使用する方法

ユーザーからの入力を受けて表示する必要があります。ユーザーがスペースを入れずにデータを入力していることがあります。通常の文字列は、今までスタイルを持たずにラップしています。しかし、スペースのない長い文字列がコンテナからあふれています。 ここでは、 "word-wrap:break-word;"テキストを折り返します。しかし、それはdivに特定の幅を指定するときに機能しています。しかし、幅を指定すると、レイアウトがブラウザ間で壊れてしまいます。

widthプロパティを指定せずにワードラップを使用する方法はありますか(すべてのブラウザで有効です)。

+0

それが仕事です私はFFの中で 'word-wrap:break-word; text-align:justify; –

+0

私は "word-break:break-word;"を試しました。 (注:これは標準のCSS仕様ではありません)、ChromeとSafariでうまく動作しています。 FirefoxとIEでは役に立たない。 FF&IEでこれを回避する方法はありますか? – Awesome

答えて

12

最後に、すべてのブラウザで標準的な結果が得られたレイアウトが少し変更されました。

  1. テーブルをmy div内に追加しました(ここでは、私のテーブルには1行しかありません& 1列)。
  2. テーブルに次のスタイルを考える - 「テーブルレイアウト:固定;幅:100%;ワードラップ:ブレークワードを;

今すぐユーザー入力がテーブルに入ります&それは小さい言葉を包み込み、長い言葉が容器からあふれている場合はそれを壊します。それはuがここhere

+0

jsfiddleを提供できますか?私はこの動作を再現することができません。 – BernardV

+0

これは本当に素晴らしい解決策です。基本的には、fluidコンテナ(divやspanなど)の中には、たとえばwidth:100%;の流体レイアウトを使用しているときに単語区切りをしないものがあります。しかし、上記のCSSとのテーブルのdivで、壊れている必要があるものをカプセル化 - それを修正する〜 – cake

+0

素晴らしい解決策! –

1

"div {word-wrap:break-word; width:auto; display:inline;}"を使用できます。 十分なスペースがない場合、作業を中断します。それはすべてのブラウザで動作します。

1

ウェブアプリケーションには次のスタイルが使用されています。さまざまなブラウザでうまく動作します。

.longText { 
word-break: break-all; 
white-space: -moz-pre-wrap; /* Mozilla */ 
white-space: -o-pre-wrap; /* Opera 7 */ 
    white-space: pre-wrap; /* CSS 2.1 */ 
white-space: pre-line; /* CSS 3 */ 
word-wrap: break-word; /* IE */ 
} 

.longTextWrapper td { 
white-space: pre-line; 
} 

希望すれば、あなたも役に立ちます。

<fieldset style="overflow: auto;width:100%"> 
    <h:panelGrid columns="1" styleClass="longTextWrapper "> 
    <h:outputText styleClass="longText" value="this is a very long messageeeeeeeeeeeeeeeeeeee...." /> 
    </h:panelGrid> 
    </fieldset> 
+0

ここでword-break:break-all;長い言葉にかかわらずすべての言葉を壊す。私は小さな言葉を包み込み、長い言葉を壊さなければならない。 – Awesome

1

使用overflow-wrap: break-word;は、テーブルを使用して別のバージョンである:

<div class="break-word-container"> 
    very_long_word_without_spaces 
</div> 

、ここではスタイルです:

.break-word-container { 
    display: table; 
    table-layout: fixed; 
    width: 100%; 
    word-wrap: break-word; 
} 
3

を確認することができ、さらに、参照のために働くだろう

関連する問題