- ベストアンサー
掲示板の半角はなぜ詰められるのか
2chのニュー速に投稿していて、あることに気付きました。 ________a__________a (_は半角スペースです) 上記のように打つと a aというように先頭と文字間のスペースが詰められます。 ここでコードを投稿すると上記のような現象が発生することは 知っていましたが、2chは気付きませんでした。 もしかしてと、ヤフー他で試したら皆同じでした。 これはpタグとかが関係しているのではと直感しました。 何かご存じの方がいたら宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
HTMLタグでは連続した半角スペースは1文字として解釈されるけど、 掲示板のサーバー側のシステムで投稿された文章の連続したスペースを1つにしてしまう処理が行われている場合もあります。 ________a__________a と投稿し終わった文章がソースを表示して <p>________a__________a</p> となっているならHTMLの仕様で1つ文字になった。 ソースを見たら <p>_a_a</p>のように変化しているのなら、自動的に(無駄な)スペースが詰められています。 半角スペース1つでも1文字ですから、例え数文字分でも無駄なスペースは削除するようにして容量の削減を図っています。 どうしても半角スペースを連続させたいなら、以下の方法があります。 もっとも掲示板がこれらの利用を許可している場合だけどね。 許可されていなければ、そのまま表示されるか、受け付けないです。 <pre></pre>タグ。 そのままタグで括った内容をそっくりそのまま表示する。 (ノーブレイクスペース)。 実体参照で半角スペースを表す。 のように入力すれば、半角スペース3つ分のスペースを表示します。 ここの場合は、タグや実体参照を利用できないから、そのまま表示でされてしまいます。
その他の回答 (3)
- t_ohta
- ベストアンサー率38% (5241/13712)
HTMLの仕様として、連続した半角スペースは一つの半角スペースとして解釈されます。 半角スペースを複数表示したい場合は&nbsp;とエスケープしてやる必要があります。
お礼
連続したスペースは1つのスペースに・・・ HTMLの考え方の基本だったみたいですね。 今まで全然知りませんでした。 HTMLを作成してなければ全然気付かなかったと思います。 preや は今度試してみます。 ご回答有り難うございました。
- qualheart
- ベストアンサー率41% (1451/3486)
確かに連続する半角スペースを1つの半角スペースに変換して適用するところもあると思いますが、おっしゃるとおりHTMLの仕様上、<p>タグ内に存在する連続する半角スペースは1つの半角スペースとして扱われます。 たとえば、HTML内で <p>________a__________a</p> と書いたら、ソース内では上記の通りですが、ブラウザ上での表示は「 a a」になります。 これは仕様ですね。 半角スペースをそのまま認識したいのであれば、 <pre>________a__________a</pre> という具合に<pre>タグを使って書きます。 ご参考まで。
お礼
仰る通り、ひょっとしてpreタグ?と思いました。 まだ実験していません。 ご意見有り難うございます。
タグ関係ない。だからカテ違い。 書き込みを保存する際に、連続したスペースは置換されて一つになる。それだけ。
お礼
ご回答有り難うございます。 カテ違いかもと思いましたが、 こうも一致すると何かを感じました。
お礼
No1様~No3様をまとめた形でご解説して頂き、 まことに有り難うございます。 ここだとpreや は使えないのですね。 色々と裏側は複雑なのですね。
補足
早々の締め切りですが、 書いてる途中の人がいたらご免なさい。 一応、このご回答で解決とします。