HTML5にはまだスラッシュが必要ですか?


121

HTML5では、XHTMLのようにエンドスラッシュが必要ですか?

<img src="some_image.png" />

validator.w3.orgは私がそれを落としても文句を言わず、警告さえしませんでした。しかし、一部のオンラインドキュメントでは、img、link、meta、brなどのタグに引き続きエンドスラッシュが必要であることを示しているようです。


6
まだ?HTMLのすべてのバージョンで、すべてのタグを閉じる必要がありましたか?
Gabe

9
@Gabe XHTML 1.0 Strictはそれを必要とします。つまり、ウェブページは通常は正常に読み込まれますが、無効と見なされます。
CaptSaltyJack

3
はい。しかし、Xはクールだからという理由だけでXが存在するわけではありません。HTMLとXHTMLの間にはかなりのギャップがあります。

1
@Capt:正しいですが、DoctypeがXHTMLを示している場合にのみ問題になります。
Gabe

回答:


81

img タグはVoid要素なので、終了タグは必要ありません。

Void要素領域、ベース、br、col、コマンド、埋め込み、hr、img、入力、keygen、リンク、メタ、パラメーター、ソース、トラック、wbr

...

Void要素には開始タグしかありません。void要素に終了タグを指定してはなりません。

W3C | WHATWG

ただし、HTML5での厳密な解析ではないため、大きな害はありません。


私のエディタ(Komodo)が '<img src = "x">'と入力してEnterキーを押すとインデントするので、気になるところです。HTML5モードでは末尾のスラッシュが想定されており、これが正しい動作であることを確認したいと思いました。
CaptSaltyJack

5
これはXHTMLではなくHTMLであるため、必須ではありません。幸いにも、パーサーはXHTMLスタイルのエンドスラッシュを問題なく理解しているので、そのままにしても問題はありません。何らかの理由で必要に応じて、XHTMLへの逆変換が容易になることを意味します。
Nightfirecat

4
@FreeRadical:void要素の末尾のスラッシュはオプションですが、終了タグは無効です。
Ry-

25
質問は終了スラッシュ(たとえば<br/)に関するものですが、この回答は終了タグ(たとえば<br></br>)にのみ言及しています
フリーラジカル

12
@FreeRadicalは正しいです。この回答は技術的に正しくありません。これはと混同an ending slashan end tag、引用する仕様の段落を誤解しているためです。これは@YannisDranの混乱につながります。@minitechは正しいことを正しく述べています。
ToolmakerSteve

94

HTML 5では、終了スラッシュはvoid要素などのオプションですimg(現在受け入れられている回答は「終了要素はvoid要素に指定してはならない」とだけ言っており、void要素の終了スラッシュには対応していないため、これを追加しています)。

http://www.w3.org/TR/html5/syntax.html#start-tags(番号6)からの引用:

次に、要素がvoid要素の1つである場合、または要素が外部要素である場合、単一の「/」(U + 002F)文字が存在する可能性があります。この文字はvoid要素には影響しませんが、外部要素には開始タグを自己終了としてマークします。


これはHTML5ではありません。実際には、HTMLの以前のバージョンで<br/>または<img ... />エラーでした。
jj

@jj HTML5のドキュメントを引用しているので、なぜHTML5ではないと思わないのかわかりません。そして実際、他のバージョンでは、そのようなスラッシュはエラーでした。
フリーラジカル

確かに、「HTML5にエンドスラッシュがまだ必要か」というのは間違った質問です。いつか私はいくつかの歴史的リンクを含む完全な答えを書くかもしれません。IIRC Ian Hickson(HTMLエディター)がHTML5で末尾のスラッシュを許可するのは難しい決定でした。
jj

2

いいえ。HTML5が登場する前でさえ、HTMLはこれを必要としませんでした。HTML機能でXHTMLを使用する場合は、そうです、それは必要です。


1
XHTMLはHTML5と同じではありませんか?私のDOCTYPEが単に「html」の場合、末尾のスラッシュは必要ありませんね。
CaptSaltyJack

@CaptSaltyJack:正解です。
Ry-

1
@CaptSaltyJack-HTML5は、通常のHTMLとXHTMLの両方をカバーします。XHTMLではすべての要素を閉じる必要がありますが、ブラウザの場合、Doctypeは状況に影響を与えません。詳細については、stackoverflow.com
questions / 2662508 /…


1

void要素の終了スラッシュはオプションです。

どちらも有効なHTML5です。

<img src="some_image.png" />

そして

<img src="some_image.png">

Void要素は次のとおりです。

  • area
  • base
  • br
  • col
  • embed
  • hr
  • img 👍
  • input
  • link
  • meta
  • param
  • source
  • track
  • wbr

興味深いことに:

Void要素にコンテンツを含めることはできません(終了タグがないため、開始タグと終了タグの間にコンテンツを置くことはできません)。

詳細:https : //html.spec.whatwg.org/multipage/syntax.html#elements-2


こちらのSOの質問もご覧ください:
HTML5の自己終了タグ(void要素)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.