HTML仕様では、特定の場合に特定のタグを省略することが許可されていますが、一般的にそうすることは賢明ではありません。
これには2つの効果があります。仕様がより複雑になるため、ブラウザーの作成者が正しい実装を作成するのが難しくなります(IEが間違っていることからわかるように)。
これにより、スペックのこれらの部分でブラウザエラーが発生する可能性が高くなります。Webサイトの作成者は、これらのタグを含めることで問題を回避できます。つまり、仕様にはそうする必要がないと記載されていますが、そうすることで、問題が発生する可能性を減らすことができます。これは優れたエンジニアリング手法です。
さらに、最新のHTML 5.1 WG仕様は現在述べています(これは進行中の作業であり、まだ変更される可能性があることに注意してください)。
要素が空の場合、またはbody要素内の最初のものがメタ、リンク、スクリプト、スタイルの場合を除き、body要素内の最初のものが空白文字またはコメントではない場合、body要素の開始タグは省略できます。 、またはテンプレート要素。
http://www.w3.org/html/wg/drafts/html/master/sections.html#the-body-element
これは少し微妙です。bodyとheadを省略すると、ブラウザはそれらの要素を挿入する場所を推測します。これは明示的でないリスクを伴い、混乱を引き起こす可能性があります。
したがって、この
<html>
<h1>hello</h1>
<script ... >
...
結果として、script要素はbody要素の子になりますが、これは
<html>
<script ... >
<h1>hello</h1>
スクリプトタグは、head要素の子になります。
あなたはこれを行うことによって明示的である可能性があります
<html>
<body>
<script ... >
<h1>hello</h1>
そして、最初に持ったもの、つまりスクリプトまたはh1は、どちらもbody要素に予想通りに表示されます。これらは、コードのリファクタリングとデバッグ中に見落としがちなものです。(たとえば、JSが本文の最初のスクリプト要素を探しているとします。2番目のスニペットでは機能しなくなります)。
一般的なルールとして、物事について明確にすることは、物事を解釈に開放するよりも常に優れています。この点で、XHTMLはコード内の要素構造について完全に明示的にすることを強制するため、より優れています。これにより、XHTMLがよりシンプルになり、誤解を起こしにくくなります。
だから、はい、それらを省略して技術的に有効にすることができますが、一般的にそうすることは賢明ではありません。
title
タグが必要です。これは、それが有効であると見なす最小のドキュメントである:<!DOCTYPE html> <title>A</title>