web-dev-qa-db-ja.com

常に表示されないオプションの改行HTMLエンティティ

Word-wrap: break-Word; CSSスタイルで動作する、常に表示されないオプションの改行文字が必要です。

以下にいくつかの詳細を示します。私の目標は、長いリンクを適切な場所で分解することです。開始するのに適した文字は、-._/\です。これはRails固有の質問ではありませんが、現在使用しているコードを共有したかったのです。

module ApplicationHelper
  def with_optional_line_breaks(text)
    text.gsub(%r{([-._/\\])}, '\1­')
  end
end

上記のコードの問題は次のとおりです。­が有効になると(Word-wrap: break-Word;を持つテーブルで)、­-として表示されます。 -を見たくありません。文字を表示せずに改行が必要です。


43
David J.

​は、ゼロ幅スペース(ZWSP)と呼ばれるUnicode文字のHTMLエンティティです。

「HTMLページでは、このスペースは<wbr>タグの代替として、長い単語の潜在的な改行として使用できます。」- ゼロ幅スペース-Wikipedia

Aaron's answer で述べたように、<wbr>タグも機能します。エンティティがよりシンプルに見えるため、タグよりもこのHTMLエンティティを好むと​​思います。Webブラウザではなく、ユニコードが処理します。

73
David J.

_<wbr>_はあなたが望むことをするように見えますが、、しかしそれをサポートするように見えます、そしてその点で_&shy;_ 非常に一貫性のない です。残念ながら、あなたが望むことをするのに特に良い方法はないかもしれません。

6
Aaron Maenpaa

2019年にこれを回答として投稿しますが、このページの他の投稿からその本質を完全に引き出しています:use <wbr>。長いURLのラップを許可し、コンテンツボックスから抜け出さないようにするのに効果的です。 caniuse.comとChromeおよびFirefoxの簡単なテストによると、ユーザーが表示するリンクをWebブラウザーに貼り付けることが重要であり、<wbr>のサポートは最新のブラウザーで適切ですアンドロイド。スラッシュをフォワードスラッシュとWBRに置き換えました。URLがうまくラップされました。

3
Geoff Kendall