2013-04-29 10 views
5

固定レイアウトでテキストを折り返していますが、テキストにスラッシュが含まれていると機能しません。テーブルセルの折り返しがスラッシュで機能しない

Javascript(純粋なCSS)からスペースを挿入せずに修正できますか?

jsfiddle:

http://jsfiddle.net/HgBhk/1/

Not working: 
<div style="display:table; width:170px; background-color:cyan;"> 
    <div style="display:table-row"> 
     <div style="display:table-cell;word-wrap: break-word;">abfdbfdbfdb/dfbfdbdfbfbf/bdffbdbfdfbddfbdfbdfb</div> 
     <div style="display:table-cell; width:34px; background-color:red;">xxxxx</div>   
    </div> 
</div> 

</br> 
Working: 
<div style="display:table; width:170px; background-color:cyan;"> 
    <div style="display:table-row"> 
     <div style="display:table-cell;word-wrap: break-word;">abfdbfdbfdb dfbfdbdfbfbf bdffbdbfdfbddfbdfbdfb</div> 
     <div style="display:table-cell; width:34px; background-color:red;">xxxxx</div>   
    </div> 
</div> 
+1

なぜ表形式のデータにdivを使用していますか? TABLESを使用する.Funny world eh〜人々は表形式のデータと表のレイアウトに –

+0

を使用します。理由は2番目のケースがスラッシュがないスペースであるからです。スペースを削除して長い文字列を1つ(最初のケースとして)持つと、どちらも機能しません。 – hexblot

+0

私はパフォーマンスのためにテーブルを使用していません。 –

答えて

0

"テーブル" のdiv要素にtable-layout:fixed;を追加し、行を分割するために、セルに幅を割り当てる:

JSFiddle

+0

はい、私はそれが修正されないようにしたい、残りのスペースを埋めたい –

+0

次に、幅:自動; net/HgBhk/5 /) –

+0

クール、ありがとう、答えを受け入れるよ –

1

各oの後に<wbr>タグまたはゼロ幅のスペース&#x200b;を挿入しますスラッシュまたは他の文字の後に直接改行を入れることができるようにする必要があります。これらの選択肢の選択はビットcomplicatedですが、あなたのコードはすでに古いバージョンのIEで動作しないので、ここでも無視してください。&#x200b;が正しい選択になります。つまり、たとえば次のように記述します。

abfdbfdbfdb/&#x200b;dfbfdbdfbfbf/&#x200b;bdffbdbfdfbddfbdfbdfb 

問題は文字レベルであり、スタイリングの問題ではありません。

空白文字を含まない文字列は、通常、折り返しでは分割できません。そのため、ブラウザを許容可能な改行ポイントで区切ったり、ハイフネーションを正しく行い、単語分割を確実に行うことができない限り、例外的なケースでは、word-wrap: break-wordのような設定は、ラッピングを制御する良い方法がなく、オーバーフローを回避する必要がある場合に緊急ブレークを意味します。

+0

これはテキストを変更する必要があることを意味します。最初の質問は、JSを使わずに行う方法でしたが、パス上にハイフネーションは必要ありません。私は答えがトピックからちょっと離れていると思う。 –

+0

これは、HTML文書をどのように修正できるかによってコンテキストによって異なります。それを変更することは、適切なラッピングを処理する正しい方法です(ラッピングが必要な場合、長いパス名やURLを表示するコンテンツには、短い名前のようなもっと普通のものを使用する必要があります)。パスはもちろんハイフネーションされるべきではありません。それどころか、そのような文字がそこに現れるならば、それらが " - "の後に分割されないようにするべきです。 CSS *はこのようなことはできません(現在または近い将来に)。 –

+0

あなたは私の日を救った!ありがとうございました! – shaosh

関連する問題