以下にDOCTYPEを含む静的HTML(index.html)があり、IE7の標準モードがトリガーされます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
次に、ページを3つのPHP HTMLテンプレート(header.html.php、index.php、footer.html.php)に変換します。また、header.html.phpには、上記の正確なDOCTYPEが含まれています。
しかし、IE7でindex.phpを要求するたびに、レンダリングが台無しになります。
このコマンドjavascript:alert(document.compatMode)
を使用して、IE7とFF3でテストしました
静的なhtmlページの場合、IE7とFF3の両方でCSS1Compatが提供されます。これは、私が期待したモードです。しかし、PHPで生成されたページの場合、FF3ではCSS1Compatが提供され、IE7ではBackCompatが提供されます。
問題は次のとおり
です。IE7からページをダウンロードしたところ、DOCTYPEが<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
アドレスなしになっていることがわかりました。
しかし、同じPHPで生成されたページをff3とchromeでダウンロードすると、DOCTYPEは正しくなります<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
ページをテストすると、当然のことながら、W3Cバリデーターが取得するソースコードの最初の行は# <!-- A customized tag to distinguish different pages --> # <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
そして、W3C検証は空の最初の行を示します。
すべての静的PHPファイルとCSSファイルのBOMを削除しましたが、それでも問題が発生します。
これはApacheまたはPHPの問題ですか?誰かがこれを修正する手がかりを持っていますか?
ありがとう。