4

この例を見てください: http://jsfiddle.net/DerekL/a7bUx/

textareaを使用して、異なる CSS 設定で2 つの を作成しまし.valた。次に、2textareaを同じ値に設定し、両方とも前に 4 つのスペースを置きます。ただし、CSS設定のものは、それらのスペースを「削除」したようです。なんで?

white-space: nowrap;Ctrl+A を押してすべてを選択し、それをテキスト プロセッサに貼り付けても、スペースがまだ欠落しているため、これに影響はないと思います。

ここに画像の説明を入力

Chrome と別の Webkit ベースのブラウザーでテストしました。同じ結果です。

4

3 に答える 3

3

使用する代わりにwhitespace: no-wrap;

使ってみて

white-space: pre;

空白はブラウザによって保持されます。テキストは改行でのみ折り返され<pre>ます HTML のタグのように機能します。

アップデート:

あなたのコメントから、wrap="off"属性を使用する必要があります。

また、Textarea Tricksを参照してください。

Nowrap セクション:

CSS でテキストが正常に折り返されないようにするには、white-space: nowrap. しかし、何らかの理由で、それはテキストエリアでは機能しません。テキストエリアに入力できるようにして、return/enter キーを押すまで改行しないようにしたい場合 (代わりに水平スクロールバーがトリガーされます)wrap="off" 属性を使用する必要があります

ここにフィドルがあります

于 2013-07-24T07:00:25.410 に答える
2

クロムでこのフィドルwhite-space: nowrap;を チェックしないでください。これはうまくいきます

javscriptregular expressionを使用できますremoving trailing white spaces。ここにサンプルのフィドルがあります。私はこれがあなたを助けると思います

于 2013-07-24T07:01:28.410 に答える
1

CSS-Tricks のこの記事によると:

この記事の冒頭にある HTML コードの例では、実際には 2 つの改行があり、1 つはテキスト行の前、もう 1 つは後にあり、テキストを (コード内の) 独自の行に配置できるようになっています。テキストがブラウザーでレンダリングされると、これらの改行は取り除かれたかのように表示されます。また、最初の文字の 1 行前の余分なスペースも削除されます。これらの改行と余分な空白文字をブラウザに強制的に表示させたい場合は、white-space: pre; を使用できます。

したがって、white-space: pre空白を保持します。

また、MDNから:

<br>空白のシーケンスは保持され、行はソース内の改行文字と要素でのみ改行されます。

于 2013-07-24T07:04:06.843 に答える