19

行の途中に 3 つのスペースのように見える空白を入れたいが、行が長くなりすぎると途切れる可能性がある場合、HTML で何を使用できますか?

通常の空白は折りたたまれ (一連のスペースは 1 つのスペースと同じように見えます)、非改行スペース ( ) では改行できません。

更新: 私が本当に欲しいのは、長い行を分割できる <pre> タグだと思います (ソース コードを表示する必要があります)。

4

8 に答える 8

24

私は実際にあなたが探している正確な答えを持っています。私はどこでもこの答えを探しましたが、誰もが完璧に機能することを提案したものは何もありませんでした。それで、私は解決策を考えてそれを試しました、そしてそれが何の欠陥もなく機能することを床に置きました!

Garrowは実際には正しかった(彼はそれを説明したり、ずっと理解したりしなかった)。&nbsp;解決策は、単独で置くのではなく、置くこと&nbsp;<wbr>です。<wbr>単純な検索を実行し、すべての後にタグを置き換えて追加するだけです&nbsp;。完璧に動作します!

この<wbr>タグは、すべての主要なブラウザでサポートされているあまり知られていないタグであり、必要な場合にのみここに改行を入れるようにブラウザに指示します。

更新:これが正確に機能しないブラウザが1つ見つかりました– IE 8!<wbr>彼らは実際にタグを取り出しました!私はこの問題を次のようなクラスを作成することで解決しました。

.wbr:before { content: "\200B" }

に置き換える代わりに&nbsp;&nbsp;<wbr>次のように置き換えます。

&nbsp;<wbr><span class='wbr'></span>

PHPでは、これは次のようになります。

$text = str_replace(" ","&nbsp;<wbr><span class='wbr'></span>", $text);

クラスも追加することを忘れないでください。

明らかに、これはかなり過剰になり、単一のスペースをそのすべてに置き換えていますが、それは希望どおりに機能し、マークアップを見たことがないので、それは私のために機能しました。

これが面倒な場合、別の解決策は、ダブルスペースを&nbsp;通常のスペースに続くダブルスペースに交換することです。これは、通常のスペースを交互&nbsp;に使用し、私のテストで機能します。

PHPでは、これは次のようになります。

$text = str_replace("  ","&nbsp; ", $text);

お役に立てれば!私はこれについて十分な調査を行いました。私はそれを渡すべきだと思いました。

于 2009-08-18T19:29:23.060 に答える
13

1 つ以上の em スペース ( ) はどうですか? 確かに、これはユーザーのフォント サイズによって異なります。それがあなたのデザインで実際に機能しない場合は、エン スペース ( ) を検討してください。

ウィキペディアのさまざまなスペースのこの表も参照してください。

于 2009-03-03T06:55:01.077 に答える
4

IE を対象としていない場合(8、標準モードを除く):

<span style="white-space: pre-wrap">   </span>

IE の場合<span style="width:3ex"></span>、quirks モードで動作するため、それらをマージして...

<span style="width:3ex;white-space:pre-wrap">   </span>

これは、私が試したすべての場所で機能するようです... IE7標準を除く. ああ!

于 2009-03-03T06:48:13.010 に答える
4

改行しない 2 つのスペースの間のスペースは機能しませんか?

   

于 2009-03-03T07:02:10.777 に答える
2

2&nbsp;の後に通常のスペースが続くのはどうですか? (私の知る限り)それの唯一の欠点は、改行が通常のスペースに自然に落ちる場合、改行しないスペースのために前の行に少しの末尾のスペースがあることですが、私はそうしませんそれがページの実際の外観に違いをもたらすとは思わない.

于 2009-03-03T06:46:12.127 に答える
0

一歩下がって、何をレンダリングしようとしているのかを尋ねたほうがよいかもしれません。この非常に広いスペースは何を意味するのでしょうか?

于 2009-03-03T07:59:49.360 に答える