textareaにpreを使うと・・・

このQ&Aのポイント
  • htmlとcgiを使用してHPを作っている際、<textarea>内に<pre>タグを入れると文字入力が問題となる。
  • 投稿フォームでwordやexcelから文章をコピペする際、<P>タグが挿入されてしまい、閲覧時に文章間隔が広くなるため、<textarea><pre></pre></textarea>を利用している。
  • <pre>タグを入れることでレイアウトの問題は解決できるが、文字入力が端まで行くとオーバーして書き込むことができてしまう。次の行に折り返す方法はあるのか?
回答を見る
  • ベストアンサー

<textarea>に<pre>を使うと・・・

質問お願いします。 htmlとcgi等を使用してHPを作っているのですが、その中にtextareaを利用して、 投稿フォームを設けています。投稿したものは、違うページで閲覧できるようになっています。 この投稿フォーム、wordやexcelから文章をコピぺして使用する方が多いのですが、 そのままでは<P>タグが挿入されてしまい、閲覧時、文章間隔が広くなりすぎて見難いため、 投稿フォームを、<textarea><pre></pre></textarea>とし、受信時、cgiで<P>タグを削除しています。 レイアウトはこれで問題ないのですが、textarea内に<pre>タグを入れてしまうと、 textareaの横幅をオーバーして書き込めてしまうという事態が起こってしまいました。 そこで質問なのですが、textarea内に<pre>を入れても、文字入力が端まで行ったら、 次の行に折り返す方法はないでしょうか? わかる方いらっしゃいましたら、ご教授の程よろしくお願いします。

  • HTML
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

preタグを挟むよりもtextareaのcss設定で調整した方が簡単なんじゃないのかな・・・

palmist_1987
質問者

お礼

ご回答ありがとうございます。 cssでの調整もしてみたのですが、データを2次活用する時に、 都合の悪い場面が出たのでこの方法を取っています。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

textareaは、 【引用】____________ここから 17.7 TEXTAREA要素 <!ELEMENT TEXTAREA - - (#PCDATA) -- multi-line text field -->  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Forms in HTML documents (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/interact/forms.html#edef-TEXTAREA )]より ですから、その書き方はおかしいです。  そもそも、<P>は段落(paragraph)を示すものですから、段落が異なればその段落ごとに<p></p>となるのは正しいのですよ。  その段落相互間の間隔が、視覚系ブラウザで表示させると広すぎるというのは単なるプレゼンテーションの問題です。この区別はHTMLを作成する上で最も重要!! ↑これをマークアップすると <p> そもそも、&lt;P&gt;は段落(paragraph)を示すものですから、段落が異なればその段落ごとに&lt;p&gt;&lt;/p&gt;となるのは正しいのですよ。 <p> <p> その段落相互間の間隔が、視覚系ブラウザで表示させると広すぎるというのは単なるプレゼンテーションの問題です。この区別はHTMLを作成する上で最も重要!! </p>  読み上げブラウザや検索エンジン、あるいは点字端末でも段落の違いを示せます。ただ、日本語では慣習的に段落の違いは、他と同じ改行と字下げ(インデント)であらわすので、「デフォルトでは段落があきすぎる」となってしまいます。  その場合スタイルシートで p{margin:0.2em 0em;text-indent:1em;} とすれば、日本語らしくなる。  たったそれだけの処理をすればよいのですよ。

palmist_1987
質問者

補足

No.1の方へのお礼にも書きましたが、2次活用時の問題があるので スタイルシート云々の問題ではないのです。 ブラウザでの表示の制御方法はある程度理解しております。

関連するQ&A

  • フォームの<textarea>の最大文字数を制御する方法

    HTMLタグの<textarea>から入力された文章に 入力時やフォーム送信前に文字数制限をかける方法が見つかりません。 何か良い方法があれば教えてください。 CGI側で判定するしかないのでしょうか。

    • ベストアンサー
    • CGI
  • SEOについて(<p><pre>)

    HTMLで文章をpとpreのどちらのタグで書こうか迷っています。 1、SEO的には<p>と<pre>どちらで文章を囲う方がよいのでしょうか。   どちらも同じでしょうか。   (ccsで表示設定は同じにしていますので、<pre>で囲う方が作業が楽です。) 2、その他、この2つに違いはあるでしょうか。 3、cssで表示を同じにしたと書きましたが、preで書くと文字幅が広がるようです・・・   調べれば方法が見つかる、と思いましたが見つかりませんでした。   preで文字幅を元に戻す方法は無いでしょうか。 回答よろしくお願いします。

    • ベストアンサー
    • SEO
  • <textarea>で「入力内容が大きすぎます」というエラーがでる

    お問い合わせフォームcgiを作成中です。 テスト送信をしているのですが、テキストエリア(問い合わせ内容)の文字数でエラーがでます。約100文字打ち込んで送信ボタンを押すと 次ページで「”問い合わせ内容”の入力内容が大きすぎます」というエラーがでます。約20文字ではエラーはでません。 私は、問い合わせ内容に入力する文字数の制限はかけていないつもりなのですが。 実際のタグです。 お問い合わせ内容<textarea name="お問い合わせ内容"></textarea> CGIは、kent webさんのpostmail Ver: 4.11 をお借りしています。

    • ベストアンサー
    • HTML
  • C# htmlファイルを、preタグを残して加工

    お世話になります。 C#で、htmlファイルのタグを解析するプログラムを 組んでいるのですが、preタグがあった場合のに、その場所を 回避して、解析やら置換やらをしたいと思っています。 例でいうと ---------------- <div> <h1>こんにちは。</h1> <p> 今日も暑いですね。 </p> <p>本日のサンプルプログラムです。</p> <code> <pre> public void aaa() { // 文字列を表示する Console.Writeline("Hello World!"); } </pre> </code> </div> ---------------- 上記のようなファイルがあった場合、普通に 改行を取り除くと、preの中も一列に繋がってしまいますが、 これをpreタグの中以外のみ改行を取り除きたい。 ---------------- <div><h1>こんにちは。</h1><p>今日も暑いですね。</p><p>本日のサンプルプログラムです。</p><code> <pre> public void aaa() { // 文字列を表示する Console.Writeline("Hello World!"); } </pre> </code></div> ---------------- こうなってもらいたいのです。 正規表現などを使用するのだと思いますが、よくわかりませんでした。 この部分のサンプルなどをお教えいただけないでしょうか。 よろしくお願いいたします。

  • 別ページから別ページへタグを貼り付け。

    1のページから2のページを開きます。 1のページにはフォームが設置してあって、中身を自由に書けるようになっています。 2にはHTMLなどの使い方が載っています。 この時、2の中に設置してあるボタンなどを押したら、そのタグなどが1のページのフォームの中に入るような仕組みってできるでしょうか? 2のタグがかいてあるのはTEXTAREA内なのでコピペでもできるんですけど、、、簡単にしてくれ、と言われそうで。 何か方法がありましたらよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • CGIのtextareaへのタグの表示

    CGI(Perl)でWebのメモ帳のようなプログラムを作っています。 何種類かのHTMLタグの使用もできるようにしてあり、更に タグ説明のために &lt; &gt; などを記入することもあります。 初回の記入をそのまま表示させる場合は問題ありませんが、一度記入した内容を 編集のためにブラウザに再表示させ、更にそれを更新すると タグの <> と &lt; &gt;が どちらも <>に変換されてしまい、説明中の HTMLタグ文字列がタグになってしまいます。 例えば A: 最初の記入時「&lt; a href・・・ &gt; はリンクタグ」などと記入してアップロード B: サーバーログには「&lt; a href・・・ &gt; はリンクタグ」のまま記録される C: 編集のためにその記事を再表示させるとブラウザが「<a href・・・ >はリンクタグ」 と表示する D: 別の部分を編集後再アップロードするとログには <a href・・・ > がタグとして記録される E: 以降の表示では <a href・・・ > の部分がリンクタグとして扱われ「はリンクタグ」にリンクがかかる というような問題に悩んでいます。 textarea 内では <code>タグも使えなさそうで・・・ 思案の末、 textarea への送信時だけ 「 &lt; 」を 「<<」などとして送信し、CGIが「<<」を受け取ったら &lt; に変換してログ記録する などのローカルな方法を考えましたが、あまりスマートではないかと。 定石のような方法はないのでしょうか?

    • ベストアンサー
    • CGI
  • <TEXTAREA> 1行目の改行・・・。

    HTMLのほうがよいかASPがよいか迷ったのですが 『.asp』ファイル上での話なので、とりあえずココへ 質問させていただきます・・・。 現在、<Form>タグを使って次画面へ値の受け渡しをしています。 その時、<TEXTAREA>タグに入力された内容を 次画面でも<TEXTAREA>に表示させています。(ReadOnlyで) 1行目にイキナリ改行をした場合に、次の画面では その改行が詰まった状態で表示されてしまいます。 例)入力フォームで [1行目] [2行目]あああ [3行目]いいいいい と入れた後、次の画面に行くと [1行目]あああ [2行目]いいいいい になってしまいます。 1行目の改行もそのまま表示させたいのですが、 何か特別なことをさせないとダメなのでしょうか? (現在は特に何もしていません。Request.Formで拾ったものをそのまま表示させてます)

  • TEXTAREAで改行するとついてくるゴミコード

    自分で作成したCGIで送信されてきたフォームデータを 取得し、テキストファイルに出力するような処理をやってまして、 その送信されるデータにはTEXTAREAで入力されたデータもあります。 CGIの処理後に出力されたファイルをテキストエディタで開こうしたら、 テキストエディタでオープン不正であるようなメッセージが表示されました。 自分でもその原因についてバイナリエディタで調べたところ、 TEXTAREAで改行されたところに不正なゴミコードが混ざっているようでした。 改行コードは16進数でいうと「0D0A」のはずですが、バイナリファイルで みたところ改行部分が「0D0D0A」となっているようで、どうやら「0D」の余計な コードがテキストエディタで開いた時、エラーを発生させている原因となってるようです。 CGIの処理内でこの「0D」コードを削除する処理をいれるのもいいんですが、 なにか簡単にこの「0D」というゴミコードを取り除きたいのですが、 ナニかいい方法ないでしょうか?

    • ベストアンサー
    • CGI
  • CGIフォーム、タグの表示について。

    フォームを使い書き込まれた内容を表示させるのに、 <TR>などのタグをタグとしてではなく、単なる「<TR>」という文字として表示させるためには TEXTAREAしか方法はないのでしょうか? <B>などはまぁいいのですが、<TR>などですと、レイアウトが崩れるほかに、文字の表示が正常に行われません。

  • textareaの内容が一部の携帯で無効に

    以下のように記述して投稿フォームを作っています。 <form action="******.cgi" method="post" enctype="" > <input type="hidden" name="mode" value="prev"> <input type="hidden" name="name" value="">       ・       ・       ・ <textarea cols="55" rows="8" name="CONTENTS"></textarea>       <input type="submit" value="送信" class="btn"> </form> なぜか一部の携帯で<textarea>内の文字列が送信されません。 name属性が大文字なのが原因でしょうか? formのenctype属性が空欄だからでしょうか。 ちなみに問題を確認した端末はAUの京セラK002です。

専門家に質問してみよう