• ベストアンサー

<HTML>は省略可能?

先日友人から『実は<html>も省略可能なんだよ』というような話を聞きびっくりしました。 私が昔読んだサイトや本では、HTMLの最小単位は <html> <head><title></title></head> <body></body> </html> だと書いてありましたが…本当に<html>も省略できるんでしょうか? 詳しい方、または説明しているサイトをご存知の方は教えてください。

  • HTML
  • 回答数4
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • nanairo9
  • ベストアンサー率44% (15/34)
回答No.1

http://ja.wikibooks.org/wiki/HTML/%E3%82%BF%E3%82%B0%E3%81%AE%E7%9C%81%E7%95%A5 可能です。 うっかり文末に</body></html>を入れわすれてアップした事がありますが、 普通に表示されていました。

rinrin_ring
質問者

お礼

ありがとうございます。 リンク先を見たところ最小はDOCTYPEとtitleと本文に当たるブロック要素みたいですね。そこまでいけるのかとびっくりしました。

その他の回答 (3)

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.4

> HTMLの最小単位 「文法的に」間違いです。HTML 4.0 であれば、「文法的に妥当な」最小コードはこうです。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title></title><p> ※Strict なので p の開始タグだけ書いています。終了タグはいりません。 --- HTML 4.0 は文書型宣言が必須です。なぜそうかと言えば、本来の目的のひとつはタグ省略を許すためです。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 上記によって、HTML パーサは HTML 4.01 のルールで文書を解析すれば良いと分かります。 <title> さてここで、この位置には「ありえない」title 要素の開始タグが現れました。ルールを確認すると、ここに本来あるべき html の開始タグは省略可能となっています。そこで、開始タグを補います。 <html><title> 再びルールを確認すると、html の子に title は置けません。本来あるべき head 要素の開始タグを補います。 <html><head><title> これで title が置けるようになりました。次。 </title><p> title の隣に p は置けません。ルールを確認すると、p は body の子であること、body の開始タグは省略可であることが分かります。開始タグを補います。 </title><body><p> まだ足りませんね。title の隣に body は置けません。ルールを確認。head の終了タグは省略可。なら、終了タグを補います。 </title></head><body><p> 以下、同じようにやっていきます。結果的に次のような HTML ができ上がります。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title></title></head><body><p></p></body></html> もちろん、省略不可とされたものは省略できません。title の開始タグと終了タグはどちらも省略不可です。だから、No.3 の「<p>あいうえお</p>」だけでは不可です。ルールを確認するための文書型宣言もありませんから。 ※しかし XHTML なら構いません。ややこしいですね。 だから、タグ短縮・省略自体は HTML のルールに基づく真っ当な方法です。 --- HTML5 なら、最小形はこうです。ちゃんと Validator を通ります。 <!DOCTYPE html> <title></title> しかしながら、とある現実的な理由から、body の開始タグだけは書いた方が無難です。それと、文字コード宣言もなるべく書くようにしましょう。 <!DOCTYPE html> <meta charset="..."> <title></title> <body> これだけで十分です。<html> だの </html> だのは不要です。 もちろん、気持ち悪いから避けるのは構いません。ただ、省略できるものを省略せずに、省略できないものを省略している例文が巷には大量にあります。それはそれで、変な話でしょう。

rinrin_ring
質問者

お礼

ありがとうございます。 やっぱり最小はDOCTYPEとtitleと本文に当たるブロック要素なんですね。詳しくありがとうございました。

  • flyingbee
  • ベストアンサー率26% (49/182)
回答No.3

ブラウザはHTMLを表記するためのものですから、 省略されればデフォルトでHTMLと判断するでしょう。 より詳細には次のページが参考になるでしょうか。 http://www.ne.jp/asahi/minazuki/bakera/html/sgml/omittag 次の一行をメモ帳に貼り付けて拡張子をhtmlに変えてやれば、 あっけなくブラウザ上で表記されますよ。 <p>あいうえお</p> <html>だけでなく<head>も<body>も省略可能ということですね。 とはいえ、ブラウザの方で気を利かしていると捉えた方が良いでしょう。 省略による悪影響は考えられても、良いことはありませんから。 

rinrin_ring
質問者

お礼

ありがとうございます。 表示できることなんか言われなくても分かっていますが、仕様上正しいと言える最小が知りたかったんです。

  • 4017B
  • ベストアンサー率73% (1304/1775)
回答No.2

出来るけど、したら駄目です。する意味もないし。 代表的なブラウザでは、テキストファイルを読み込んだ時。データの先頭100バイト前後までに <nn>~</nn> が含まれていたら、自動的にHTMLファイルだと認識する様になっている物が多いので。正式な記述式に乗っ取っていなくても、例えば <p><HTML>は省略可能?</p> ~みたいな感じでも一応、HTMLページとして表示されます。 でも省略する意味は全く無い。HTMLファイルのヘッダ情報を勝手に省略してしまうと、ブラウザが(特にIE)自動的に後方互換モードで起動してしまい、意図したようにHTMLページが表示されなくなる主たる原因になります。

rinrin_ring
質問者

お礼

ありがとうございます。 それは当然分かっています。何が省略できるのか、正しいHTMLの最小は何なのかが知りたかったんです。

関連するQ&A

  • 省略できるHTMLについて

    今、Dreamweaverでホームページを作ってるのですが、無駄なタグなどがあって困ってます。 省略できるHTMLについて検索して探して見ましたが、そういうサイトが見つかりませんでした。 省略できるHTMLの情報が載ってるサイトや書籍があったら教えてください やっぱし手打ちのほうがいいのですかね?

    • ベストアンサー
    • HTML
  • HTMLの基本のタグを入れないとどうなりますか

    こんにちは。 ホームページを作る時に、最低でも基本的なタグ <HTML><HEAD><TITLE></TITLE></HEAD><BODY></BODY></HTML> を入れないとだめだと聞いています。 しかし、これらのタグが抜けていても、それなりに表示されているのを見かけます。 具体的に、これらのタグが抜けていると、何が起こるのでしょうか? それとも、今はこれらのタグは無くても問題は無いと言う事なんでしょうか?

  • HTMLでのサイト作りについて

    メモ帳でHTMLのサイトを作ろうとしてるんですが、 画像を上部に一列表示がどうやってするのかわかりません。 そのソース、または <style type="text/css"> <!-- body { background-image : url("画像URL"); background-repeat: repeat-x; background-attachment: fixed; } --> </style> を、<HEAD>~</HEAD>に とかいてあるんですが、 <html> <head> <title>私のページ</title> </head> <body> 初めてホームページを作ってみた。 <br> </body> </html> のどこにいれるんですか? 教えてください><

  • pythonでHTMLの修正

    ただいまpythonを勉強中なのですが、HTMLの文書を読み込み、 ある特定の文字列が出現したらそれを違う文字列に変換することは可能でしょうか。 例えば以下のようなHTMLがあったとします。 <html> <head> <title>文書のタイトル</title> </head> <body> 文書の本体 </body> </html> ここで文書の本体を読み込んだら 「文書の本体」を 「文書のフォント」 「文書のカラー」  「文書の本体」と以下のように三行にわたって修正することはできるでしょうか。 <html> <head> <title>文書のタイトル</title> </head> <body> 文書のフォント 文書のカラー  文書の本体 </body> </html>

  • <HTML><HEAD><TITLE>Succes

    <HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML> iPhoneでWi-Fiに接続しようとすると 以上のようなポップアップが出てきて接続できません 昨日まではこんなのみたこともなかったのに急にこうなりました 誰か解決策を教えてください(*_*)

  • HTML、divについて

    HTMLについて質問です。 <head> <body> 文章 <hr> 文章 <hr> 文章 </body> </head> というページを作った時、上、中、下の文章はそれぞれを特にcssに設定したいことはないですが、divで囲ってグループ分け?すべきでしょうか。 このままでも構わないでしょうか。 もうひとつ、現在はhead部にtitleではなくTITLEを使うべきなのでしょか。 回答よろしくお願いします。

    • ベストアンサー
    • HTML
  • HTMLにWSHを組み込む

    HTMLにWSHのコードを書く事は可能ですか? たとえば、ページ開くとNotePad.EXEが起動するようにしたいのですが 以下のような書き方をすると WScriptが宣言されていません。 とエラーになります。 <HTML> <HEAD> <TITLE>起動のテスト</TITLE> </HEAD> <meta http-equiv="Content-Script-Type" content="text/JavaScript"> <BODY> <SCRIPT LANGUAGE="JavaScript"> var title = "メモ帳"; var wsh = WScript.CreateObject("WScript.Shell"); wsh.Run( "NotePad.EXE" ); </SCRIPT> </BODY> </HTML> いい案がある方教えてください。

    • ベストアンサー
    • HTML
  • html言語の配置について

    <HTML> <HEAD> <TITLE>ランファスター001</TITLE> </HEAD> <BODY BGCOLOR="yellow"> <CENTER><H1> <FONT color="red">ランファスター001</FONT> 基本的な質問ですが、HTMLの1つ1つの<>はどのような法則で配置していけばいいのでしょうか。例えば <BODY BGCOLOR="yellow">の下にある<CENTER>はなぜあの位置なのか法則性を知りたいです。 どのように決めたらいいのでしょうか。。

    • ベストアンサー
    • HTML
  • HTML::Parserの挙動がよく分かりません

    CGIプログラミング第2版を読みながらCGIを学習しています。 11章 "ステートの保持"の11.1 クエリ文字列とパス情報の例題ではまっております。。。 これはURLに識別子を埋め込んでユーザーを追跡するという、超ハイテクなスクリプトです。 とりあえず、記載されているとおりにスクリプトを作成してHTMLファイルも用意しました。 HTMLファイルの内容は超簡単で <HTML><HEAD><TITLE>store</TITLE></HEAD><BODY><A href="abc.html">abc</A></BODY></HTML> です。 これでユーザーがhttp://ウェブサーバー/store/下のファイルをリクエストすると、自動的にスクリプトが実行され、カスタマイズされたHTMLファイルが返されるという仕様です。 実際に返されたHTMLファイルを見てみると <HTML><HEAD><TITLE>store</title></head><BODY> なんと<A>タグ以降がばっさり切り落とされていました^^ しかもタグは全部大文字で書いたのに一部小文字になっていたりと、意味不明な状況です。 たぶんHTML::Parserなるものが、いろいろHTMLファイルを操作しているとは思うのですが、今回返されたHTMLはどう見ても壊れているような・・・。

    • ベストアンサー
    • Perl
  • HTML文法

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head><title></title></head> <body> <dl> <dt>aaa <dt>aaaa <dt>aaaaa </dl> </body> </html> のdl~が http://openlab.ring.gr.jp/k16/htmllint/htmllint.html で間違いではないのはなぜですか?

専門家に質問してみよう