• ベストアンサー

掲示板の半角はなぜ詰められるのか

2chのニュー速に投稿していて、あることに気付きました。 ________a__________a (_は半角スペースです) 上記のように打つと a aというように先頭と文字間のスペースが詰められます。 ここでコードを投稿すると上記のような現象が発生することは 知っていましたが、2chは気付きませんでした。 もしかしてと、ヤフー他で試したら皆同じでした。 これはpタグとかが関係しているのではと直感しました。 何かご存じの方がいたら宜しくお願いします。

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

  • ベストアンサー
  • dezimac
  • ベストアンサー率56% (2365/4208)
回答No.4

HTMLタグでは連続した半角スペースは1文字として解釈されるけど、 掲示板のサーバー側のシステムで投稿された文章の連続したスペースを1つにしてしまう処理が行われている場合もあります。 ________a__________a と投稿し終わった文章がソースを表示して <p>________a__________a</p> となっているならHTMLの仕様で1つ文字になった。 ソースを見たら <p>_a_a</p>のように変化しているのなら、自動的に(無駄な)スペースが詰められています。 半角スペース1つでも1文字ですから、例え数文字分でも無駄なスペースは削除するようにして容量の削減を図っています。 どうしても半角スペースを連続させたいなら、以下の方法があります。 もっとも掲示板がこれらの利用を許可している場合だけどね。 許可されていなければ、そのまま表示されるか、受け付けないです。 <pre></pre>タグ。 そのままタグで括った内容をそっくりそのまま表示する。 &nbsp;(ノーブレイクスペース)。 実体参照で半角スペースを表す。 &nbsp;&nbsp;&nbsp;のように入力すれば、半角スペース3つ分のスペースを表示します。 ここの場合は、タグや実体参照を利用できないから、そのまま表示でされてしまいます。

uzume_z
質問者

お礼

No1様~No3様をまとめた形でご解説して頂き、 まことに有り難うございます。 ここだとpreや&nbspは使えないのですね。 色々と裏側は複雑なのですね。

uzume_z
質問者

補足

早々の締め切りですが、 書いてる途中の人がいたらご免なさい。 一応、このご回答で解決とします。

その他の回答 (3)

  • t_ohta
  • ベストアンサー率38% (5241/13712)
回答No.3

HTMLの仕様として、連続した半角スペースは一つの半角スペースとして解釈されます。 半角スペースを複数表示したい場合は&nbsp;とエスケープしてやる必要があります。

uzume_z
質問者

お礼

連続したスペースは1つのスペースに・・・ HTMLの考え方の基本だったみたいですね。 今まで全然知りませんでした。 HTMLを作成してなければ全然気付かなかったと思います。 preや&nbspは今度試してみます。 ご回答有り難うございました。

  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.2

確かに連続する半角スペースを1つの半角スペースに変換して適用するところもあると思いますが、おっしゃるとおりHTMLの仕様上、<p>タグ内に存在する連続する半角スペースは1つの半角スペースとして扱われます。 たとえば、HTML内で <p>________a__________a</p> と書いたら、ソース内では上記の通りですが、ブラウザ上での表示は「 a a」になります。 これは仕様ですね。 半角スペースをそのまま認識したいのであれば、 <pre>________a__________a</pre> という具合に<pre>タグを使って書きます。 ご参考まで。

uzume_z
質問者

お礼

仰る通り、ひょっとしてpreタグ?と思いました。 まだ実験していません。 ご意見有り難うございます。

noname#158634
noname#158634
回答No.1

タグ関係ない。だからカテ違い。 書き込みを保存する際に、連続したスペースは置換されて一つになる。それだけ。

uzume_z
質問者

お礼

ご回答有り難うございます。 カテ違いかもと思いましたが、 こうも一致すると何かを感じました。

関連するQ&A