2010-11-23 9 views
1

私はSafariでウェブページを開いたばかりですが、何が表示されましたか?全文は緑色だった?しかし、私はキャプションを緑色にするだけなので、通常のテキストは黒くなりますか?それで、私は考えました:まあ、私はこのサイトをFirefoxでプログラミングしました。最初に私はそれがサファリによる悪い解釈だと思ったが、私は再び私のコードを見直し、私はこれを見た:私はH3タグを閉じていないCSS、HTML Webブラウザ無効なマークアップの許容度

<h3>Caption<h3> 
<p>BlacktextblacktextBlacktextblacktextBlacktextblacktext</p> 

を。

Safariは私のコードを正しく解釈しています。Firefoxはこのタイプミスを許容していますか? Firefoxでは、次のように動作します:GREEN caption BLACK text;サファリは言う:「いいえ、あなたはh3を閉じないことを忘れましたか?まあ、すべてが緑で、それを処理してください。

私の質問は次のとおりです。主要なブラウザの耐性はどの程度ですか?ブラウザーは何(タイプミス、病気など)を許容しますか?

答えて

5

実際には、両方のブラウザで無効なマークアップ(「<h3>」の2つの未開封タグがあるため無効)を「許容」しています。 Gecko(Firefox)は、h3pを含めることはできず、開封直前の両方でこれらを閉じることを決定しました。p一方、WebKit(Safari、Chrome)は、おそらく文書本体の最後でそれらを閉じたでしょう。

すべてのブラウザは、HTMLドキュメントの最大の混乱から回復するために最善を尽くします。彼らの「許容」レベルは多かれ少なかれ同等ですが、結果はそれらの間で異なります。ブラウザのエラー修正に頼らないのが最善です。 w3c validatorを使用してコードが有効であることを確認し、すべてのブラウザで正しく解析できるようにします。

+0

+1妥当性の高いブラウザと無効なマークアップとを比較するよりも、バリデータを使用してサイトを確認する方が簡単です。 –

2

ブラウザにはエラーに対する許容度はまったくありませんが、レンダリングできるように正しくないコードを修正するために最善を尽くします。

正しいコードを表示する方法に関する明確な基準はありますが、間違ったコードの解釈方法に関する標準はありません。どのブラウザーでも、状況を最大限に活用するための独自の計画を使用する場合があります。

コード自体が正しくないため、どちらのブラウザでもコードを正しく解釈できません。だから、どちらのブラウザーも何も悪いことはしません、彼らはちょうど異なったことをします。

+0

"...間違ったコードをどう解釈するかについての基準は全くありません"。これは厳密には正しいかもしれないが、やや誤解を招く。 HTML5のドラフトでは、バイトストリームをどのように処理してHTMLとして扱うかについて詳しく説明しているので、次の世代のブラウザではすべて同じ方法で修正されたマークアップが必要です。 – Alohci

+0

@Alohci:それは有望だとは思いますが、それは現在どのように機能しているのでしょうか。いずれにしても、コードは最初から正しく、ブラウザのエラー修正に頼らずに正しいものにする必要があります。エラー処理も将来標準化されるとしても、実際の実装はまだ異なります... – Guffa

関連する問題