3

ここでいくつかの考えを明確にできますか?

Doctypeが指定されていない場合、Quirksmodeが呼び出されます。

しかし

ローカルホストから提供されると、IEはDoctypeに関係なくquirksmodeに入るように見えます。これを確認して、誰かがこれが事実である理由を説明できますか?

でも

ローカルホストから提供され、IEがDoctypeに関係なくquirksmodeに入ると、これはヘッドの最初の行にメタタグを含めることでオーバーライドできます。

<meta http-equiv="X-UA-Compatible" content="IE=edge">

これは私にはうまくいきません...構文が間違っていますか?

ヘッドのメタは、ローカルホストから提供された場合にのみ適用されますか?もしそうなら、これは本当ですか?

現時点では、ローカルホストから提供されているかネット経由で提供されているかにかかわらず、FFChromeOperaなどですべてが正常に表示されます。

しかし、私はIEでクァークズモードを取得します

私のDoctypeは

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

最後に、charsetとquirksmodeの間に関係がありますか?

私は使用しています

<meta http-equiv="content-type" content="text/html; charset=utf-8" />       

apacheconfigがデフォルトでUTF-8に設定されているapacheの場合

4

4 に答える 4

1

クァークズモードは風変わりであり、それに関して特別なことに頼るべきではありません。トリガーされる状況はブラウザーによって異なりますが、XHTML仕様に準拠したXHTML doctypeを見てトリガーする場合は、おそらく観察の誤りです。たとえば、Doctypeの前にいくつかのものがあるかもしれません。IEに関するマジックmetaタグについても同様です。

構文が間違っている可能性がありますが、投稿されたスニペットにはありません。

または、この問題は、DoctypeスニッフィングでのIE8およびIE9の合併症の一部が原因である可能性があります。

文字セットとQuirksモードの間に関係はありません。

于 2012-11-21T18:43:57.430 に答える
0

2つ、IE=8などを試すことができます。

doctypeを確認することもできます。ただし、文字が隠されている可能性があるのは正しいように見えますが、隠された文字を表示する基本的なエディターを使用してみてください。

VIについては、http://www.chrispian.com/quick-vi-tip-show-hidden-characters/を参照してください。

これは私にとっての第一歩です。

于 2012-11-21T18:24:23.257 に答える
0

短い答え

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

text/htmlあなたのdoctypeがxhtmlである間だとあなたが言うので、それはうまくいかないところです。を使用する必要がありますapplication/xhtml+xml

長い答え

あなたはXHTMLが実際に何であるかを適切に研究していないように私には思えます。これは非常に奇妙な種類の文書です。XHTMLは、従来のHTMLを改良したものであると考えられていましたが、実際に普及することはなく、特別な理由がない限り、一般的にXHTMLを使用することはお勧めしません。

このWebサイトをご覧ください。いくつかの重要なセクション:

XHTML 1.1

XHTMLの1.1バージョンの場合、仕様は明確です。text/htmlは使用できません。XHTMLの「ネイティブ」コンテンツタイプのapplication/xhtml + xmlを使用する必要がありますが、汎用XMLコンテンツタイプのapplication/xmlを使用することもできます。

このコンテンツタイプのスープは、1.1のかなり明確な行動方針を残します。XHTML1.12を使用する場合は、コンテンツタイプとしてapplication / xhtml+xmlを提供する必要があります。

そして、ここにあなたの問題があります:

ホラー!ホラー!

あなたはそれを推測しました。XHTMLのすべての目的と目的を含むドキュメントをtext/htmlとして提供するということは、ブラウザがエラー訂正モードにジャンプして対処することを意味します。

于 2012-11-21T18:27:46.270 に答える
0

この質問の結果を要約したいと思います。

IE9で互換モードをオフにするには

  1. IE 9では、ツールアイコンを右クリックし、コマンドバーを選択します
  2. コマンドバーからツールを選択
  3. ツールから互換表示設定を選択します
  4. 互換モードでイントラネットサイトを表示するチェックを外します
  5. コマンドバー選択ツールから、互換表示がオフになっていることを確認します
  6. ブラウザの再試行

コード変更のポイント

  • html 5 doctypeは、doctypeの設定に関する問題全体を単純化します。
  • charsetとquirksmodeの間に関係があるように見えた理由は、そのcharsetを追加するためのメタのエラーが原因で、doctypeと競合していました。

したがって、問題を解決するためのアクションが完了しました。

  1. localhost quirksmodeを無視します-これは、テスト時にのみ重要です。
  2. <!Doctype html>htmlドキュメントがこれで始まることを確認して使用します。N:Bこれは、これがHTMLの最初の行である必要があるという意味ではありません。phpインクルードはその前に置くことができます。

  3. <head>使用中<meta charset="UTF-8">

  4. PHPの初期化で使用<?php header("content-Type: text/html; charset=utf-8"); ?>
于 2012-11-22T11:13:36.557 に答える