web-dev-qa-db-ja.com

スラッシュを閉じる前のスペース?

XMLタグとHTMLタグの最後のスラッシュの前にスペースが頻繁にあります。 XHTMLの改行はおそらく正規の例です:

<br />

の代わりに:

<br/>

スペースは余分なようです。実際、私はそれは余分だと思います。

このスペースを書く理由は何ですか?

このスペースがいくつかの「後方互換性の問題」を解決することを読んだことがあります。後方互換性の問題はどれですか?これらの問題はまだ関連していますか、それともIE3の互換性のためにスペースを追加していますか?これに関する決定的な答えがある仕様がありますか?

下位互換性がない場合、それは可読性の問題ですか? Great Open Curly Braceの議論に似ていますか?

void it_goes_up_here() {

int no_you_fool_it_goes_down_there()
{

私は確かに異なるスタイルの意見を尊重することができますので、スペースを書くことは単に好みの問題であることを学んでうれしいです。

86
Greg Mattes

答えは、人々が XHTML1.0仕様の付録C に従うことです。 XHTMLをtext/htmlとして提供 の場合にのみ行う必要があります。これは、XHTMLの実際のMIMEタイプ(application/html + xml)がInternet Explorerで機能しないためです。

現在のブラウザはスペースを気にしません。ブラウザはこれらのことに非常に寛容です。

HTMLパーサーが末尾のスラッシュを認識されない属性として扱うようにするために必要なスペース。

60
Lee Kowalkowski

Netscape 4.80 showing different behaviour of <br/> and <br /> in HTML

bobince's answer のサポートNetscape 4.80のスクリーンショット付きドキュメントの表示

data:text/html,<title>space</title>foo<br />bar

(左上、改行のレンダリング)および

data:text/html,<title>no space</title>foo<br/>bar

(左下、改行は無視されます)。


写真を表示するための回答として投稿

タンジェンシャルに関連する:実際、誤解されたSGML仕様、つまり SGML Null End Tag([ 〜#〜] net [〜#〜] (ここで1<tag/2/3等しい1<tag>2</tag>3 そう 1<tag/>2は実際には1<tag>>2)、しかし、私は標準の良い証明と具体的なバージョンを見つけることができなかっただけでなく、適切な標準に準拠した振る舞いを把握することさえできませんでした。参照用の生リンクはほとんどありません。

(現時点では再現できませんが、これにより影響を受ける複数のブラウザーに関するLee Kowalkowskiの声明をサポートしています。)

25
myf

これらの問題はまだ関連していますか、それともIE3との互換性のためにスペースを追加していますか?

あなたは近くにいました-Netscape 4用です。

他の合理化を見るのは面白いですが、それはそれが意図されたすべてです。

24
bobince

いいえ、スペースは必要ありませんが、一部の古いブラウザではこれらのタグを正しくレンダリングする必要があります。これを行う適切な方法は、余分なスペースがないことです。これは、XMLから継承されたXHTMLであるためです。

4
Andrew Hare

XHTMLでは、brタグを閉じる必要があります ただし、スペースは必要ありません 。それは文体的なことです。 HTMLでは、brタグを閉じることができないため、両方とも間違っています。

3
Pesto

スペースはタグを読みやすくするだけです。私は、コードをより読みやすくするための書式設定の大きな支持者です。そのようなささいなことは大いに役立ちます。スペースがないと、終了タグは開始タグと混ざります。コードをすばやく読んでいるので、処理に少し時間がかかります。

1
Jim Petkus

非常に怠zyなhtmlライターがいた場合や、引用符が怖い場合はどうでしょう。あなたが彼のロボットページクローラーであった場合、次のことを考慮してください...

<img src=http://myunquotedurl.com/image.jpg />

versus

<img src=http://myunquotedurl.com/image.jpg/>

これは小さいように見えるかもしれませんが、スペースがない場合に何ができるかを見てください。ロボットは、スラッシュがURLの一部であるか終了タグの一部であるかを知りません。

1
Jim True