• ベストアンサー

タブに相当するタグは何でしょうか?

改行は<br/>を使えますが タブはどのようになるのでしょうか? また、 textarea内にタブを入力する方法を押してください。 現在はエディタにタブを書きそれをコピーして張り付けています。 よろしくお願いします。

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

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

≫改行は<br/>を使えますがタブはどのようになるのでしょうか?  用途が分からないと・・・  HTMLのソースの話でしたら、 9.1 空白類( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/text.html#h-9.1 )  に書かれているように、 「本仕様は、ここに空白類文字と明示的に定めたもの以外のスペース文字類については、レンダリングその他の挙動を示すことはない。この理由から、著者は、空白類を含む視覚的整形効果を及ぼすためには、スペース類文字ではなく適切な要素あるいはスタイル指定を行う必要がある。 」  HTMLをブラウザで見たときに、タブがあるように表示するのは<pre></pre>ないに入れる以外ありません。そうでなければスタイルシートで指定します。  プログラムのソースコードを書く場合などは、<pre></pre>で囲むのが良いでしょう。 ≫textarea内にタブを入力する方法を押してください。  タブだと、次の入力エリアに飛んでしまうので、基本的にはその方法しかありません。firefoxだと、Mozilla Japan - Firefox 用アドオン - It's All Text! ( https://addons.mozilla.jp/firefox/details/4125 )を使うと便利です。  ですが、それを送信しても受け取るCGI側で何らかの処理をしないとなりません。よく使う方法は、「整形済み」あるいは「入力したとおりに表示する」の選択ボタンを用意して、その文書を<pre></pre>で囲むとか。  その場合、<や>などは&lt;&gt;に変換するとか、<pre></pre>内に書けないタブをエスケープするなどが必要になります。  

reiman
質問者

補足

用途はPHPです。 <table style="width:100%"><tr><td> <pre style="white-space:normal">{$s}</pre> </tr></td></table> だとかってに$sが長いと折り返されずにつきぬけてしまいます。 なにかいいStyleはないでしょうか? ちなみにFirefoxでは <table style="width:100%"><tr><td> <pre nowrap>{$s}</pre> </tr></td></table> で簡単に解決します。 IEがくせものです。

その他の回答 (5)

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

≫$sはいたずらに長い文字列で、ときどき改行とタブがあるものです。 ということは、たぶんプロ゛ラムのソースコードみたいなものではないということでよいですか?  また、『ときどき改行とタブがある』ということは、改行に続いてタブがすぐあり、かつタブは一段階だけでよいということですか?  なら単純に <td style="text-indent:8em">{$s}</td>ですみそうな気がします。

reiman
質問者

お礼

ありがとうございます。 日本文です。 普通の文章に表題、サブ表題、サブサブ表題、サブサブサブ表題 が階層的についている日本文です。 インデントでTab代わりにするのもありだと思いました。 試してみたいと思います。

noname#83877
noname#83877
回答No.5

<pre style="white-space:pre-wrap; white-space:-moz-pre-wrap; white-space: -o-pre-wrap; white-space:-pre-wrap; word-wrap:break-word;"> </pre> これでいいんじゃないでしょうか。

reiman
質問者

お礼

ありがとうございます。 やってみましたが FireFoxでは折り返しがうまくいきTabがうまくいかないし、 98seのIEでは 折り返しがうまくいきません。範囲を越えてひろがります。 改行を<BR/>に置換することで妥協します。

  • warez
  • ベストアンサー率57% (29/50)
回答No.4

pre の折り返しは諦めて、はみ出る場合はスクロールバーを表示させる方向でどうしょう? pre { overflow: auto } なお、pre の中でタブを使うのはよくないみたいです。仕様的に。

reiman
質問者

お礼

ありがとうございます。 タブを諦めます 折り返しの方が重要です。 プログラムでやるには大げさ過ぎるのでさけたいので 妥協するしかなさそうですね

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

まず、 <table style="width:100%"><tr><td> <pre nowrap>{$s}</pre> </tr></td></table> はありえません。なぜなら、nowrap属性は、THとTDにだけ使える属性でしかも非推奨。 ≫style="white-space:normal"  これは、空白文字を一つにまとめるテキストに対するスタイル指定です。  white-space: pre で、preになりますが、IE6.0以前の互換モードでは非対応。 ≫<pre style="white-space:normal">{$s}</pre> そもそも、これって矛盾してません?  pre内のテキストをスタイルシートで変更することは、非推奨以前の禁止事項です。  要は、{$s}がどのようなデータであるかから、マークアップを・・・ {$s}はどんな要素なのですか?

reiman
質問者

補足

$sはいたずらに長い文字列で ときどき改行とタブがあるものです。 表示幅を越えるながさなので タブ と 折り返しが 前提です。 折り返しだけならば <Pre>を使わずに<BR>置換 を使えばよいが Tabがじつげんできません。 <pre> を使えばTabは実現できるが折り返しがだめです。 両方をうまくやる方法はないものでしょうか? スタイルならばどんなタグにどのようなスタイルを使えばよいでしょうか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

エスケープ文字でやってみては? <textarea> abc xyz </textarea>

reiman
質問者

お礼

ありがとうございます。 Textarea内の入力はそれで解決しました。 ありがとうございました。 タブを表現するために <pre> を使うとFireFoxではWrap属性で折り返してくれますが IEでは折り返してくれず勝手に器が広がってしまいます。 Wrapを使わないと両者とも 器の幅が勝手に広がってしまいます。 何か対策はあるでしょうか?

関連するQ&A