Word-wrap: break-Word;
CSSスタイルで動作する、常に表示されないオプションの改行文字が必要です。
以下にいくつかの詳細を示します。私の目標は、長いリンクを適切な場所で分解することです。開始するのに適した文字は、-
、.
、_
、/
、\
です。これはRails固有の質問ではありませんが、現在使用しているコードを共有したかったのです。
module ApplicationHelper
def with_optional_line_breaks(text)
text.gsub(%r{([-._/\\])}, '\1­')
end
end
上記のコードの問題は次のとおりです。­
が有効になると(Word-wrap: break-Word;
を持つテーブルで)、­
は-
として表示されます。 -
を見たくありません。文字を表示せずに改行が必要です。
​
は、ゼロ幅スペース(ZWSP)と呼ばれるUnicode文字のHTMLエンティティです。
「HTMLページでは、このスペースは
<wbr>
タグの代替として、長い単語の潜在的な改行として使用できます。」- ゼロ幅スペース-Wikipedia
Aaron's answer で述べたように、<wbr>
タグも機能します。エンティティがよりシンプルに見えるため、タグよりもこのHTMLエンティティを好むと思います。Webブラウザではなく、ユニコードが処理します。
_<wbr>
_はあなたが望むことをするように見えますが、、しかしそれをサポートするように見えます、そしてその点で_­
_ 非常に一貫性のない です。残念ながら、あなたが望むことをするのに特に良い方法はないかもしれません。
2019年にこれを回答として投稿しますが、このページの他の投稿からその本質を完全に引き出しています:use <wbr>
。長いURLのラップを許可し、コンテンツボックスから抜け出さないようにするのに効果的です。 caniuse.comとChromeおよびFirefoxの簡単なテストによると、ユーザーが表示するリンクをWebブラウザーに貼り付けることが重要であり、<wbr>
のサポートは最新のブラウザーで適切ですアンドロイド。スラッシュをフォワードスラッシュとWBRに置き換えました。URLがうまくラップされました。