記事に表示する長い名前空間 ( など) があり、ウィンドウの幅が不十分な場合はMyProject\Sub\Level
バックスラッシュ文字 ( ) で囲みます。\
CSS または JS/jQuery を使用してこれを実装するにはどうすればよいですか?
4 に答える
文字の後に改行が許可されていることをブラウザーに伝えるには、文字の後に ZERO WIDTH SPACE (ZWSP) 文字 U+200B を挿入します。HTML マークアップでは、文字参照 ` ' を使用できます。
MyProject\​Sub\​Level
スクリプトを使用して文字を追加する場合は、文字列リテラルを使用して文字自体を入力できます\u200b
。
一部の古いブラウザー (IE 6) ではこれに問題がありましたが、現在では、このアプローチは古い<wbr>
タグ (十分にサポートされていましたが、新しいバージョンの IE では台無しになっています) よりもうまく機能するようです。
1 つのオプションは、文字­
の前後にソフト ハイフン ( )を使用することです。\
ソフトハイフンを使用すると、単語を特定のポイントで区切ることができ、単語が実際にそのポイントで区切られる場合にのみ表示されます。
また、コピーして貼り付けた場合もテキストに表示されません (Chromium 19/Ubuntu 11.04 でテスト済み)。このアプローチでは、次の HTML でreplace()
jQuery のメソッドを使用します。html()
<ul>
<li>\some\text\possibly\a\path</li>
<li>\another\path</li>
<li>\something\else\also\quite\long</li>
</ul>
そしてCSS:
li {
width: 8em;
border: 1px solid #000;
}
jQuery:
$('li').html(function(i, h) {
return h.replace(/(\\)/g, '­$1­')
});
明らかに、文字の両側にソフトハイフンを使用する必要はありません。これは、使用\
方法のデモンストレーションにすぎません。
代わりに-
、ブレークポイントでの文字の出現を避けたい場合は、上記と同じアプローチを使用しますが、代わりに空のspan
要素を挿入し、それにスタイルを与えますdisplay: inline-block;
:
jQuery:
$('li').html(function(i, h) {
return h.replace(/(\\)/g, '$1<span></span>')
});
CSS:
li {
width: 8em;
border: 1px solid #000;
}
li span {
display: inline-block;
}
参考文献:
テキストを含む要素で次の css を使用します。
word-wrap: break-word;
これは、最新のブラウザーでサポートされている css3 プロパティです: Google Chrome 6、Internet Explorer 8、Firefox 3、Opera 10、Safari 5。
Acclaration :/
文字だけで壊れることはありません。コンテナーの伸縮に応じて、単語の任意の文字で壊れる可能性があります。
おそらく、jQuery の例に従うことができます-本文が読み込まれた後にテキストを検索して置換し、すべてのスラッシュの後に改行を挿入します