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


93

XMLタグとHTMLタグの終了スラッシュの前にスペースが頻繁にあります。XHTMLの改行はおそらく標準的な例です。

<br />

の代わりに:

<br/>

スペースは余計に見えます。実は余計だと思います。

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

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

後方互換性がない場合、それは読みやすさの問題ですか?グレートオープンカーリーブレースの議論に似ていますか?

void it_goes_up_here() {

int no_you_fool_it_goes_down_there()
{

私は確かに異なる文体の意見を尊重することができるので、空間を書くことは単に好みの問題であることを学んで喜んでいます。


5
私はそれに慣れているので、<br />は<br/>よりもはるかに優れています
mk12

回答:


64

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

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

HTMLパーサーが末尾のスラッシュを認識されない属性として処理することを保証するために必要であったスペース。


2
「昔は」についてもっと具体的に教えてください。年またはブラウザのバージョン、あるいはその両方で十分です。
Greg Mattes、

5
w3.org/TR/xhtml1/#C_2は、この回答のより正確なリンクだと思います。したがって、XHTML 1.0付録C2は事実上時代遅れであり、スペースを書くことは純粋に問題になっているようです。
Greg Mattes、

1
すべてのHTMLパーサーがブラウザであるとは限らないため、HTMLパーサーが末尾のスラッシュを認識されない属性として扱うことを確認することに関して、申し訳ありません。どのブラウザのバージョンが詰まっているかを推測したくないのですが、IE4やNetscape 4の不満を覚えていません。
Lee Kowalkowski、2009

3
実際の本当のMIMEタイプはapplication / xhtml + xmlです。
mk12

3
@JanAagaard:私は知らない、私はそうならば、それを覚えているだろう-私はあなたがにリンクされている答えはあまりにもこの効果にコメントをしたことIE4およびNetscape 4上のWeb開発を開始し、それが実際にネットスケープ3だと言う
リーKowalkowski

31

HTMLで<br/>と<br />の異なる動作を示すNetscape 4.80

ドキュメントを表示するNetscape 4.80のスクリーンショットでボビンスの回答をサポート

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

(左上、改行がレンダリングされます)および

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

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


画像を表示するための回答として投稿

、実際には私は誤解のSGML仕様に長い答え古代のブラウザのように不正行為の原因を特定する(スペースを含むように勧告した)を持っていた、すなわち:接線方向には関連SGMLヌル終了タグ(NET1<tag/2/3等しい1<tag>2</tag>3ので、1<tag/>2実際には意味します1<tag>>2)が、標準の適切な証明と具体的なバージョンを見つけることができなかっただけでなく、標準に準拠する適切な動作を把握することもできませんでした。参考のためにいくつかの生のリンク:

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


25

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

あなたは近かった-それはNetscape 4のためです。

他の合理化を見るのは興味深いですが、それが目的でした。


2
ありがとう!これのリファレンスを提供できますか?
Greg Mattes、

1
うーん、この古い主な情報源を見つけるのは難しい...公式のW3の資料では、UAについて言及することを避けており、リストでの議論は、状況を既読とするようです。スペースを必要とする他のUAもおそらくありましたが、N4が最後のUAであり、何年もの間Webマスターにトラブルを引き起こしていました。
ボビンス、2009年

XHTML文書もNetscapeでレンダリングされるようにするためです。具体的には、ブレークタグとイメージタグ用でした。主な出典:10年前にIE4とNS3の互換性をコーディングしていました。
Philihp Busby 2015

4

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


1
具体的にはどの古いブラウザですか?市場シェアの高いブラウザについて話しているのかどうか知りたいです。
Greg Mattes、

そうではなかった。IE5およびそれ以前のバージョンがほとんどです。
jmucchiello 2009年


2

スペースがあると、タグが読みやすくなります。私はより読みやすいコードをフォーマットすることを強く支持しています。そのような小さなことは長い道のりです。スペースがない場合、終了タグは開始タグと調和します。コードをすばやく読み取っているので、処理にかかる時間はほんの一瞬です。


0

非常に怠惰なhtmlライターがいたり、引用符を恐れていたとしたらどうでしょう。もしあなたが彼のロボットページクローラーだったら、次のことを考えてください...

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

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

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


12
まあ、とにかくURLの周りに引用符があるはずです。
フロリアンウェンデルボルン2015

-1

空白は、このタグが空で閉じているという考えを強調する方法だと思います。

今日は、空白がないという問題がなかったので、空白をもう使用しません。


1
「強化」は「強い」にふさわしい言葉です
Hao

お知らせありがとうございます。ここに筆記の質を保証する人々がいるのを見るのは良いことです。
nicruo 2009年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.