25

DOCTYPEの前の空白が重要かどうか常に疑問に思っていましたが、Web上で明確な情報を見つけることができないようです。人々はそれをしないと言いますが、それがどのような影響を与える可能性があるのか​​、あるいは仕様がそのようでなければならないと言っていても、私にはわかりません。それがIEの互換モードをトリガーするのか、それともそのような厄介なものをトリガーするのかわかりません。

その理由は、私の(くだらない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>

最初はきちんとしているので。しかし、一番上の結果は、レンダリングされたhtmlにいくつかの空白行があります。

大きな問題ではありません。私はいつもそれが重要かどうか疑問に思っていました:)

4

6 に答える 6

25

はい!コメントとスペースが最初に来る場合があります。

これが公式のHTML仕様の関連セクションです

于 2012-06-07T02:33:28.493 に答える
8

doctypeの前に空白に問題があるブラウザがときどきあります。典型的な例はIE6で、これを見るとクァークズモードになると言われていました。これは、一部の非常に特殊なタイプの空白(たとえば、改行できないスペースなど)にのみ当てはまることがわかります。とは言うものの、IE6の互換性は、ほとんどの人の優先リストでは高くありません。

于 2012-06-07T02:42:17.080 に答える
4

RayによってリンクされているHTML仕様が間違っていることに注意してください。DOCTYPEの前に空白を入れることはできますが、仕様では、DOCTYPEの前にコメントを付けることもできます。ただし、InternetExplorer9以前では機能しません。

于 2012-11-28T16:32:09.713 に答える
4

クァークズモードを回避する可能性を最大化するには、HTMLドキュメントの最初にdoctype宣言を配置します。クァークズモードは標準に違反することと実際のブラウザの動作に関するものであるため、これに関する公式の声明は見つかりません。ほとんど文書化されていないのは、クァークズモードの考え方の一部です。著者はそれを信頼することになっていない。これは、新しいページに使用する必要があるものではなく、レガシーページを(以前のように)許容できるように動作させることを目的としています。

最近のブラウザでは、通常、Quirksモードに移行せずに、Doctype、コメント、またはXML宣言の前に空の行を使用できます。ただし、やむを得ない理由がない限り、そこには何も置かないでください。

于 2012-06-07T05:01:35.693 に答える
1

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

宣言は、タグの前で、HTMLドキュメントの最初のものでなければなりません。

取得元:w3スクール(Doctypes)

于 2012-06-07T02:30:35.390 に答える
0

実際には、実用的なアドバイスは、<meta charset="UTF-8">ステートメントを含む最初のテキストを1024バイトに制限することです。これは、一部のブラウザでは、文字エンコードヘッダーがない場合に、制限付きのプレスキャンを使用して文字エンコードをすばやく判断する必要があるためです。

詳細については、 W3CSivonenを参照してください。

于 2020-10-14T14:59:04.910 に答える