2016-04-05 6 views
7

私は2つのインラインスパンを持っています。コードサンプル:css word-wrap:break-wordは機能しません

<div class="comment_content"> 

     <span class="comment_author"><?= $child_comment['comment_author'] ?></span> 
     <span class="comment_text"><?= $child_comment['comment_content'] ?></span> 

    </div> 

そして、SCSSサンプル:

.comment_content {   
    word-wrap: break-word; 
} 
.comment_author { 
    display: inline-block; 
    vertical-align:top; 
} 
.comment_text {    
    display: inline-block; 
    word-wrap: break-word; 
    width: 100%; 
} 

私の予想ビューがなければならない場合は、次のExpected result

ユーザーはスペースなしの文字列を入力した場合、文字列が中断されません。そして、デザインを破る:Problem

どのように適切に長い単語を壊すのですか?

+0

それは良い言葉を破っている幅の割合を最小化しようとするまたはピクセル – satya

答えて

1

word-breakスタイルを使用して、を定義します。ここで、は、次の行に改行します。デフォルトでは、スペースやハイフンを使用していますが、任意の文字に破壊できるようにbreak-allに設定することができます

.comment_text { 
    display: inline-block; 
    word-wrap: break-word; 
    word-break: break-all; 
    width: 100%; 
} 
+1

の幅を入れてください。 –

+0

@ManoVardasRamūnas残念ながら、あなたは本当にそれを両方の方法で持つことはできません。 – Steve

+0

多分私はこのためにJavascriptを使用します –

-1

あなたがここに

word-break: break-all; 

参照フィドル

fiddle

+1

長い文字列の場合は良い解決策ですが、すべての単語が壊れます。 –

-1
を使用することができます

.comment_contentクラスでword-break: break-all;を使用してください。適切に長い単語を破るために

10

それは私はこのようなヘルパークラスを定義し、適用することをお勧めし、いくつかのCSSプロパティを組み合わせることが必要です。

.break-long-words { 
    overflow-wrap: break-word; 
    word-wrap: break-word; 
    word-break: break-all; 
    word-break: break-word; 
    hyphens: auto; 
} 

プロパティは、次のように説明し

  • オーバーフローラップワードラップは同じもののためにaliasesですが、一部のブラウザではサポートされていないブラウザもあります。 (
  • ワードブレークはもともとCJKで特定の動作を必要とするためのものです...彼ら は言葉を破る公式「正しい」方法ですが、彼らは、我々はより多くを必要とするので、ダイナミックな幅を持つ要素には影響しません。中国語、日本語、韓国語)のテキストを扱いますが、 ワードラップと似ていますが、WebKitのbreak-all値ではすべての場所が破損します。そのため、標準でないWebKitのみのbreak-word値を に記述する必要があります。
  • また、ブレーク・ワードがハイフンを持つのが理にかなっていれば(つまり、おそらくそうでない場合は)、 がサポートするブラウザでhypensを使用できます(Firefox、Safari、Edge、IE 10+ )。また、Firefoxのhypensはword-brake というプロパティを持っていると機能しないので、固定幅のコンテナがない場合は、FFのハイフンかレガシーサポートのどちらかを選択する必要があります。

これは完全なverisonであるよりも、あなたがAutoprefixerのようなものを使用していない場合、私は、ベンダープレフィックスを省略したが注:これは参考になる

.break-long-words { 
    overflow-wrap: break-word; 
    word-wrap: break-word; 
    -ms-word-break: break-all; 
    word-break: break-all; 
    word-break: break-word; 
    -ms-hyphens: auto; 
    -moz-hyphens: auto; 
    -webkit-hyphens: auto; 
    hyphens: auto; 
} 
+0

"word-break"プロパティには "break-word"という値はありません。どちらの場合でも、このプロパティに2つの値を割り当てているので、2つ目の値は最初の値を上書きします。 – Psychonaut

+1

私が説明したように:word-break:break-wordは、webkitを使用するブラウザでブレークオールを無効にすることを目的としたwebkit-onlyプロパティです。参考:https://css-tricks.com/almanac/properties/w/word-break/#article-header-id-0 –

+0

これは、break-word first> break-all>ハイフンの優先順位に従ってキーワードの可用性? –

1

Iの事。あなたの場合は特にwidthを指定する必要があります。ここで

.comment_content{ 
 
    width:500px; 
 
    border:1px solid #ccc; 
 
} 
 

 
.comment_author{ 
 
    width: 100px; 
 
    float: left; 
 
} 
 

 
.comment_text{ 
 
    width: 400px; 
 
    word-wrap: break-word; 
 
    display:inline-block; 
 
}
<div class="comment_content"> 
 

 
     <span class="comment_author">Hello</span> 
 
     <span class="comment_text">qeqweqweqweqeeqeqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqeqweqweqweqweqweqweqwewqeqweqweqweqweqweqweqweqweqweqeqeqweqweqweqweqweqweqweqweqweqeqewqweqeq</span> 
 

 
    </div>

あなたが望むものを達成するための作業の例です:examples

関連する問題