2012-06-07 24 views
25

私はいつもDOCTYPEが問題になる前に空白が問題になっているのかどうか疑問に思っていますが、Web上で明確な情報が見つからないようです。人々はそれをしないと言っていますが、それがどんな影響を及ぼしているのか分かりません。 IEで互換モードを起動するか、それとも迷惑なものであるかはわかりません。私のHTML5 doctypeは最初の行になければなりませんか?

理由は、私の(安っぽいasp.net)コードでは、私はあまり書くことを好むだろう:

<%@ Page language="c#" Codepage="65001" AutoEventWireup="true" %> 
<%@ OutputCache Location="None" VaryByParam="none" %> 
<!doctype html> 

より:

<%@ Page language="c#" Codepage="65001" AutoEventWireup="true" %><%@ OutputCache Location="None" VaryByParam="none" %><!doctype html> 

最初は滑らかな印象ですので。しかし、トップ1の結果はレンダリングされたhtmlの空白行です。

大きな問題ではありません。それが重要な場合、私はちょうどいつも不思議に思っていました:)

+0

I似たような状況があります。 '<金属:ページ定義マクロ= "マスター"> ' – Falk

答えて

24

から頂きました。

コメントとスペースが最初に表示されることがあります。

ここにリンク:http://www.w3.org/TR/html-markup/documents.html#conformant-documentsです。

+0

私は仲間を歓迎しています。心の平和:)それは私ができるようになると受け入れます。 – captainclam

+1

https://www.w3.org/TR/2012/WD-html-markup-20121025/documents.html#conformant-documentsに移動したように見える –

1

いいえ、Doctypeはファイルの最初の行である必要はありませんが、それ<html>タグの前に来るように持っています。これは唯一の制限ですので、最初の方法は問題ありません。

宣言は、タグの前のHTMLドキュメントの最初のものでなければなりません。あなたは公式な答えをしたい場合は、W3Cの公式文書に行き、そこの構文について読んw3 schools (doctypes)

+5

W3Schoolsのではありません信頼できる基準。 [名前にもかかわらず、W3Cとは何も関係ありません。](http://w3fools.com/) – Ryan

+1

リンクのおかげで、以前はそれを知りませんでした。 – Annabelle

8

doctypeの前に空白に問題があるブラウザがあります。古典的な例はIE6で、見た目では奇妙なモードになっていました。これは、非常に特定の種類の空白(破られない空白、例えば& nbsp;)の場合にのみ当てはまることが分かります。 IE6との互換性は、ほとんどの人の優先順位リストでは高くないと言われています。

4

クワークスモードを回避する確率を最大にするには、doctype宣言をHTMLドキュメントの先頭に配置します。 Quirksモードは標準違反と実際のブラウザの動作についての公式な声明はありません。 Quirks Modeのアイデアの一部ですが、それは主に文書化されていません。作者はそれを信じることは想定されていません。これは、従来のページを新しいページに使うべきではなく、(以前のように)寛容に動作させることを意味しています。

現代のブラウザでは、一般に、Doctype、コメント、またはXML宣言の前に空白行を入れて、Quirksモードにすることはできません。しかし、そうしなければならない魅力的な理由がない限りは、何も置かないでください。

4

RayにリンクされているHTML仕様が間違っていることに注意してください。 DOCTYPEの前に空白が許されている間、仕様はDOCTYPEの前にコメントが来るかもしれないと言っています。しかし、これはInternet Explorer 9以前では機能しません。

+6

「ブラウザXのバージョンはサポートしていません。それをサポートする "と"仕様が間違っています "。特に、 "RayにリンクされたHTML仕様"がw3.org仕様です... –

+2

@KristianGlass:多分、私は「間違っている」とは違う言葉にしていたはずです。たぶん「ウェブ開発者には役に立たない」という方が良いでしょう。しかし、それは変わっていません。仕様を信頼すれば、サポートする必要のあるブラウザでは動作しないものを作成することになります。 –

関連する問題