急いで仕事をするために古いコードを再利用する必要がありました。そのコードのQAは問題ありませんが、Doctypeが宣言されていないことがわかりました。Doctypeを追加すると、IEのデザインが壊れます。理想的には、Doctypeが存在しない場合に想定されるDoctypeを宣言できますが、それが可能かどうかはわかりません。Doctypeが宣言されていないページによって作成された動作を変更せずにDoctypeを宣言する方法はありますか?
3 に答える
Doctypeがない場合、IEはページをquirksモードで表示します。IEをDoctypeでクァークズモードに保つために、Doctypeの前にコメント(<!-- -->
)を追加できます。
編集:問題を引き起こしているのがIE6だけの場合、XMLプロローグ(<?xml version="1.0" encoding="utf-8"?>
)はそれをクァークズモードに保ちます。
編集2:IEをクァークズモードに保つDoctypeは実際にはたくさんあります。検証できるものを見つけることができるはずです。
クァークズモードを標準モードに変更し(XHTML Transitional、HTML 4 Strict、HTML 5などを使用すると仮定)、特にIEとの間にかなりの不一致があるため、不可能です。あなたは周りのことを修正するか、誰かを雇う必要があります。
私は以前に同じような状況にありました。これを実行している間、HTML検証ツールを使用してHTMLを実行することをお勧めします。私のお気に入りはこれです:
ページにアクセスするために認証または他の何らかのメカニズムが必要な場合は、Firefoxプラグインもあります(そのサイトにサイトに直接アクセスさせることはできません)。
あなたが説明する「機能」が実際に多くのIEの「文書化されていない機能」(バグ)の1つである場合、HTML標準に準拠させ、機能し続けることはできません。標準に準拠していないコードが多数ある可能性があり、IE固有のエラー処理がページを機能させています。ブラウザが異なれば、エラー条件の処理も異なります(定義上、エラー条件はドキュメントタイプの範囲外であるため)。
繰り返しになりますが、HTMLをある種の検証に合格させてから、機能を追加することを心配してください。私の経験から、エラー状態は通常、あなたが説明しているこの種の問題を引き起こすことがわかりました。
それは私がウェブ開発で遭遇した一番のルールです。ページは、特定のDoctypeについて検証する必要があります。
幸運を!
-ブライアンJ.スティナー-