13

私は素晴らしいHTML5ボイラープレートを使用しています。これは素晴らしいプロジェクトですが、IE 8および7でのレンダリングに大きな問題があります(おそらく8ですが、まだ試していません)

ファイルのDoctypeはHTML5です。

<!doctype html>
<head>

しかし、問題は、次のような完全で醜い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">

あらゆる種類のレンダリングの問題が発生します:マージンによるセンタリング:自動が機能せず、高さ、幅、マーティング、パディングがすべて狂ったように動作し、すべてのレイアウトが壊れていますが<!doctype>、古いものに切り替えると、すべてがうまく機能します(まあ、素晴らしいではありません、それはまだIEですが、予想通り)

HTML5ボイラープレートにはModernizerが付属しており、これを修正する必要があると思いますが、機能していません。私の「調査」(Google)から、IEがクァークズモードの幅<!doctype>で入ることがわかったので、質問は...

IEがクァークズモードになるのを防ぐ方法はあります<!doctype>か?

または、少なくともマージン、幅、パディングなどを壊さないようにしますか?

編集:これは完全な頭です:

<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">
4

8 に答える 8

17

IE は、その Doctype では互換モードになりません。ボイラープレートは IE の問題を修正するものであって、問題を引き起こすものではありません。<html>doctype の後の要素がありません。それを追加して、状況が変わるかどうかを確認します。HTML5 はそれを必要としませんが、欠落している場合、ドキュメントによると IE または定型文のいずれかが狂ってしまう可能性があります。

また、doctype の後のコメントを削除するだけで、問題は解消されます。

于 2012-02-13T18:19:21.110 に答える
11

<head></head>これをタグに入れてみてください:

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

既に存在する場合は、それを削除すると、目的の結果が得られる可能性があります。

于 2012-02-13T18:13:56.447 に答える
8

IE は、HTML doctype に慣れていません。これが重要なポイントです。

特に、この新しい DOCTYPE の優れている点は、現在のすべてのブラウザー (IE、FF、Opera、Safari) がそれを見て、HTML5 を実装していなくても、コンテンツを標準モードに切り替えることです。これは、HTML5 を使用して今日から Web ページの作成を開始し、非常に長い間維持できることを意味します。

(http://ejohn.org/blog/html5-doctype/)

ただし、doctype の前に何か (改行、コメントなど) があると、そうなります。

私はあなたが何をしているのかを確認したいと思います - HTML5 doctype はあなたのブラウザーを癖にさせません。

于 2012-02-13T19:00:53.180 に答える
1

ファイルを BOM なしの UTF-8として保存してみてください。それは私を助けました。

于 2014-10-17T13:05:09.087 に答える
0

条件付きコメントで互換モードに入る可能性があります。x-ua-compatible.htaccess ファイルまたはその他のサーバー構成ファイル内でサーバー側のヘッダーを設定することをお勧めします。

于 2012-02-16T14:45:42.887 に答える
0

私はあまり「ウィズ」ではありませんが、条件付き html を実行して、IE8 以下の HTML 4.01 doctype を次のように宣言してもうまくいきません。

<!-- HTML 5 doctype -->
<!doctype html>

<!-- HTML 4.01 Doctype -->
<!--[if lte IE 8]>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<![endif]-->

それが古いブラウザーで機能しない場合 (ブラウザーが 2 つの Doctype を読み取るため)、これを試すことができます。

<!DOCTYPE HTML <!--[if lte IE 8]>PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"
<![endif]-->>
于 2012-02-13T18:16:04.217 に答える
-4

doctype html の代わりに DOCTYPE html を試してください doctype タグは大文字と小文字を区別します。これが理由です。

于 2013-03-01T07:41:50.220 に答える