プロが教える店舗&オフィスのセキュリティ対策術

ヤフーで簡単なHPを作っています。
(知識がないためhtmlしか使用していません)

いつからか、誤って最後のタグの</body>と</html>をないまま作成していましたが
問題なく表示されていました。

ということは</body>と</html>はあってもなくても変わらないのでしょうか?

A 回答 (5件)

こんばんは



実際には必要なものです。
しかし、多少のミスはブラウザ(ホームページを見るためのソフト)が多少の誤りは上手く解釈して表示しているので問題が出ていないだけです。
最後の</body>や</html>は「最後だから」問題が出にくいというだけです。

途中にある<p><div>ですと、閉じ忘れがあればおそらく表示が崩れます。

閉じ忘れがあっても思い通りに表示されているのは、「たまたま」ブラウザが上手くやってくれているだけで、「なくてもいい」ではありません。ブラウザの種類やバージョンで対応が異なりますので、「本則」に則ったコーディングをお勧めします。
    • good
    • 0
この回答へのお礼

ブラウザが調整してくれただけなのですね。ありがとうございます。

お礼日時:2009/12/17 21:22

HTMLであれば,HTMLおよびBODYの終了タグを省略しても問題ありません。


以下の列挙はその根拠です (普通は4番目と5番目以外は気にする必要がありません)。
・HTMLはSGMLを使って作られたマークアップ言語である
・SGMLには「タグを省略する」機構が存在する
・HTMLのSGML宣言でOMITTAG YESとされているのでタグを省略する機構が有効化されている
・DTD上で,BODYおよびHTMLの各要素は開始タグ・終了タグともに省略が許可されている
・文脈上,BODY, HTMLの両要素の終了タグが省略されている事が自明である

XHTMLであれば,SGML→XMLの過程で省略タグ機構というものがなくなったので,本来は不正となります。
<meta (属性) />
とか
<link (属性) />
とか
<br />
のような書き方をしている場合は,意図せずでもXHTML (のように見える) ものを書いているので,
</body>および</html>の省略は避けた方が良いでしょう。
# ブラウザがよきに取りはからうでしょうけれど……。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/12/17 21:23

たまたま赤信号を無視しましたが、事故にあわず、つかまりませんでした。


ということは信号は無視してもよいのでしょうか?

と、同等の質問に聞こえますよ
    • good
    • 0
この回答へのお礼

わかりやすいです。ありがとうございます。

お礼日時:2009/12/17 21:23

★省略しても表示されるには2種類あります。


 bodyとhtmlの終了タグは【任意】(Optional)ですから、省略可能です。
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
HTMLの文法では、SGMLと異なって、いくつか省略可能な終了タグやそもそも省略可能な開始タグもあります。
 たとえば<p><div><dt><dd><li>などは省略できますし、<html>や<head>は開始タグも省略可能というか(Optional)【任意】です。
 これらがなぜ省略可能かというと、それがあるとみなすことができるからです。たとえば<p>は内部に<p>を含めてブロック要素は含むことができませんから、次にブロック要素が現れた時点で、そこで<p>が終了しているとみなせるからです。当然<html>や<head>の開始タグが省略できるのも、同様な理由です。
 また、属性値が""で囲んでなくても解釈する。

★もうひとつは、ブラウザには書き方が誤っていても、文書構造を解釈して修正して表示することが求められていますから、多少のミスは表示可能です。

★しかし、このことは重大な問題もはらんでいます。ブラウザは、タグの有無や著者の書き間違いを判断し修正する機能を課せられているため、大きく複雑なプログラムとならざるを得ません。
 そこで、これらの負担をプログラムから取り除くために、必ず終了タグを書くこと(内容を持たない要素は開始タグの最後を/>とする。属性値は必ず""で囲む。要素名や属性は小文字で書くなど、SGML/XMLの仕様に合わせた、XHTMLが決められました。次のHTML5も多分そうなる。
 ですので、たとえ省略できても、きちんと書くようにしましょう。

【引用】____________ここから
HTML要素型の中には、著者が終了タグを省略することを許容するものもある。(例えば、P要素型やLI要素型)。 さらに一部の要素型は、開始タグの省略も許容する。例えば、 HEADや BODYがこれである。 HTML DTDは、すべての要素型について、開始タグと終了タグが必須であるかどうかを示している。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで
[On SGML and HTML (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )]より
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/12/17 21:22

こんばんは


ご質問の『あってもなくても』ですが、言い方を変えれば『省略できるか出来ないか』って事になります
ブラウザが勝手に補ってくれる終了タグもあれば、必須の終了タグもありますし、はたまた終了タグ設定がないものもありまして
で、今回のご質問にお答えするなら、『ブラウザが勝手に補ってくれるタグなので、あってもなくて変わらない』ですが、省略する必要もないかなと思います
まずは基本に忠実に!かなw

参考URL:http://www.tohoho-web.com/html/memo/elem.htm
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/12/17 21:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!