4

white-spaceHTML で CSS プロパティを使用したいtextarea

基本的に、誰かが a に改行を含む一連のテキストを入力し、このデータを MySQL に保存するために送信した場合、 CSS プロパティを使用してそれらの改行をテキストエリアに表示しtextareaたいと考えています。white-spaceしかし、試してみるとうまくいかず、テキストを 1 つの大きな段落にまとめて表示するだけで、切れ目などはありません。これを行う方法はありますか?

<form action="includes/changebio.php" method="post" id="form1">         
 <textarea id="bio" style="width: 440px; 
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 120px;
    resize: none; 
  outline:none;
  overflow:scroll;

  **white-space:pre-line;**

    border: #ccc 1px solid;" textarea name="bio" data-id="bio" maxlength="710" placeholder="<?php echo stripslashes($profile['bio']); ?>"></textarea>
<input type="image" src="assets/img/icons/save-edit.png"class="bio-submit" name="submit" value="submit" id="submit"/>
</form>
4

3 に答える 3

4
textarea{white-space:pre}

私がこれを見たとき、それはあなたのテキストエリアが何かから white-space:nowrap を継承しているためです。テキストエリアの wrap="no" によって複雑になることもありますが、これは便利な場合があります。

textarea nowrap のデフォルトの動作は pre であるため、スタイルの下部で上記のように css を設定するだけで、空白を設定している場所はすべて上書きされます。

textarea 要素を調べると、階層内のどこかで、デフォルトの textarea の動作をオーバーライドしている要素のどこかに nowrap プロパティを設定していることがわかります。

于 2014-04-19T17:46:36.897 に答える
1

しないでください。

<textarea>要素はすでに空白を文字どおりに処理しています。物事を自分の手に取ろうとする必要はありません。

于 2013-04-15T23:36:12.080 に答える
0

私にとってはうまくいっているようです...これをテストするためだけにコードペンに投げ込みました。改行文字を直接追加すると、テキストエリア内で問題なく表示されます。

何が起こっているのかわからない。PHP は改行文字を削除していますか? $profile['bio'] を介して渡すものを二重引用符で囲んでいますか?

これがあなたを助けるかもしれない答えです:テキストエリアの .val() は改行を考慮しません

特に、最後の応答。あなたのコードに基づいて、 .replace() メソッドが必要なもののようには聞こえません(しかし、私は間違っている可能性があります...あなたが何をしているのか理解していないかもしれません)。

于 2015-09-16T03:32:06.103 に答える