2
4

2 に答える 2

6

あなたの質問は少し不明確ですが、改行を完全に無視するブラウザのデフォルトではなく、文字列に含まれる改行を保持したいと考えています。

preプロパティのオプションの1 つが必要になりwhite-spaceます。

/* Display text exactly as entered */
white-space: pre;

/* Display as entered, plus extra linebreaks as needed for long lines */
white-space: pre-wrap;

/* Display newlines as entered, plus extra linebreaks as needed for long lines */
white-space: pre-line;

違いに関する注意事項:

  1. pre全体を<pre>タグでラップするのと同じです。

  2. との違いはprepre-wrap長い行の必要に応じて余分な改行を追加するかどうかです。

  3. との違いはpre-wrappre-lineすべての空白 (スペースを含む) を保持するか、改行のみを保持するかです。

  4. pre-lineすべての改行を<br>タグに置き換えることと同等です。

ここでさまざまなスタイルの比較を見ることができます: http://jsfiddle.net/Gcexh/


遭遇するもう 1 つの問題は、入力の最後の 2 行の間に改行が必要であるとは限らない場合に、改行があることです。

単一の改行を削除し、最初の 2 行を区切るような二重の改行のみを保持することで、これを修正できます。

これはサーバー側で行うのが理想的ですが、次のように JavaScript で行うこともできます:
(@JanDvorak に感謝):

text = text.replace(/(\n\s*\n)|\n/g, "$1 ")
于 2013-08-03T06:14:43.710 に答える
0

cssでそれを行う方法はないと思います。JavaScriptの方法:

var myStr = "Your multiline\n\nstring...";
for (;;)
{
     if (myStr.indexOf("\n") != -1)
          myStr = myStr.replace("\n", " ");
     else
          break;
}
于 2013-08-03T06:14:47.760 に答える