もり ひろゆきの日々是勉強

日々思ったことやIT関連のメモなどをのほほんと綴っていきたいと・・・。(^^;

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  1920  : 記事  12  : コメント  13008  : トラックバック  163

ニュース

Microsoft Innovation Center

MICでは各種無償セミナーを実施しています。
こちら
そして、スピーカーは僭越ながら私がお話させていただいております。
一生懸命努めさせていただきますので、よろしければご参加くださいm(__)m

平行運用はじめました。

  • 現在、こちらのほうで平行運用を行っております。

自己紹介

  • もり ひろゆき(森 博之)と申します。

    極東IT Engineersというコミュニティの代表です。

    本業は東京でソフトウェア開発のお仕事をしております。いわゆるDeveloperですね(^^;

    仕事ではVB,C#といろいろと渡り歩いてはおりますが、主に.NET系の業務アプリの開発が多いです。

    というか仕事となったら必死で何でも勉強しますが(^^;;;;

    最近ではMicrosoft Innovation Centerで講師もさせていただいておりますが、撃たれ弱いのでお手柔らかにお願いしますm(__)m

    まったく関係ありませんが、たこ焼き機も持っています。 関西人です。

    エントリの内容は私が個人的に収集した情報を元に書いていますが、あくまで個人的なメモ用途ですので内容の正確性を保証するものでありません。あらかじめご了承くださいm(__)m

Microsoft MVP

MCP


  • 70-316 Developing and Implementing Windows-based Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET

    70-536 Microsoft .NET Framework 2.0 - Application Development Foundation


  • MCTS: :.NET Framework 2.0 Web アプリケーション
    70-528 Microsoft .NET Framework 2.0 - Web-based Client Development


  • MCTS: Microsoft SQL Server 2005
    70-431 Microsoft SQL Server 2005 - Implementation and Maintenance

Wankuma MVP


  • Wankuma MVP for OOO(= Original Object-Oriented)

iKnow!

etc.

  • 人気ブログランキング - もり ひろゆきの日々是勉強

    スカウター : もり ひろゆきの日々是勉強

    あわせて読みたい

書庫

日記カテゴリ

リンク

たまにはこんなエントリも書いてみようかしら。

今年の3月に公開になっているInternet Explorer 8 Beta1ですが、CSS 2.1準拠などWeb標準の準拠に向けてのバグフィックスを続けているようです。

そのためレンダリングエンジンに若干変更があります。

具体的にはIE8では下記の3つのレンダリングモードを持っています。

  • Quirks(クワークス)モード
  • IE7標準モード
  • IE8標準モード

Quirks(クワークス)モードというのはIE5.5まで繰り返されてきた発展途上期のレンダリングモードですね。

IE7標準モードはその名の通り、IE7での標準(Standard)モードですね。 QuirksモードよりWeb標準に近いレンダリングモードです。

そして、IE8標準モードはWeb標準への準拠にFocusしたレンダリングモードですね。

で、IE8ではレンダリングモードの指定が未指定である状態で、通常のHTMLを読み込むとIE8標準モードをデフォルトのレンダリングモードとしてレンダリングを行い、DOCTYPEなどの指定の内容によってQuirksモードとIE8標準モードの切り替えを行うワケです。

で、上記にもありますように互換性のため3つのモードがあり、その切り替え方法ということになるのですが、大きく分けると下記の3種類の方法でレンダリングモードを切り替えることができます。

  • EmulateIE7ボタンによる切り替え
  • Developer Toolsによる切り替え
  • 互換モードスイッチによる切り替え

まず、EmulateIE7ボタンによる切り替えは、その名の通りIE8を起動するとEmulateIE7というボタンがついています。 このボタンをクリックすると「IE8を完全に終了させて再起動するとIE7モードに切り替わります」といった主旨のメッセージが表示されます。 これはBeta2には再起動なしで切り替えできるようになるそうです。

これにより、IE7の標準モードに切り替わるワケです。 もちろん、再度クリックして再起動するとIE8標準モードへ戻ります。

次にDeveloper Toolsです。 これはIE8から標準搭載される開発者向けのツールなのですが、HTMLのツリー表示を行ったり、CSSを閲覧できたり、スクリプトのステップ実行や変数のウォッチを行えたりするツールなのですが、この中にレンダリングエンジンを切り替えることができる機能が搭載されています。 これは再起動不要でそのままレンダリングモードの切り替えができますので互換性のチェックを行う際に便利です。

これらは、あくまでコンテンツを見る側での操作が必要となる切り替え方法です。 ですので、IE8にバージョンアップしたことで表示が崩れるサイトがあれば、こういった操作により正しく表示できる可能性が高くなります。

そして、次にユーザー側の操作ではなく、サーバーやコンテンツ側で切り替える方法ですが、互換モードスイッチと呼ばれるスイッチが搭載されています。 これは大きく分けてhttpレスポンスヘッダに設定する方法とコンテンツ側に設定する方法があります。

まず、互換モードスイッチについて説明するとスイッチには下記の種類があります。

    モード 互換モードスイッチ
    Quirks(クワークス)モード IE=5
    IE7標準モード IE=7
    Quirks/IE7標準モード IE=EmulateIE7
    IE8標準モード IE=8
    最新モード IE=edge

互換モードスイッチは指定されるとそのDOCTYPEなどは関係なく、そのレンダリングモードで描画されますが、一部例外があります。

最初に書いたように通常、何も未指定の場合はDOCTYPEの記述があった場合、IE8標準モードとQuirksモードをDOCTYPEの内容により切り替えていましたが、互換モードスイッチで「IE=EmulateIE7」を指定されると、DOCTYPEによるレンダリングモードの切り替えがIE7標準モードとQuirksモードによる切り替えとなります。 つまり、従来のIE7との互換性が高いモードとして切り替えてくれるのがこのEmulateIE7というスイッチですね。

それ以外にも、常に最新のレンダリングモードで描画させたい場合は互換モードスイッチ「IE=edge」を指定すると、新しいIEのバージョンに対応した最新のレンダリングモードで描画されます。

さて、肝心の互換モードスイッチの指定方法ですが、まずIISなどのWebサーバー側設定する場合はhttpレスポンスヘッダーにて「X-UA-Compatible」という名前で値に互換モードスイッチを指定します。 

そしてクライアント側ではmetaタグで指定します。 指定方法はHEAD要素内に

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

といった形でcontent属性の値に適切な互換モードスイッチを指定することでレンダリングモードが切り替わります。

これらのスイッチの優先順位は

  1. Developer Tools
  2. metaタグ
  3. httpレスポンスヘッダー
  4. DOCTYPE

という形になっていますので、その優先順位を考慮しつつ、適用されることをお奨めします(^^)

IE8になってこのようにデフォルトが変わってしまうので要注意ですね(^^)

2008/06/18 11:00 追記:互換モードスイッチ「IE=EmulateIE7」ですが、IE8 Beta1ではKB951804を適用しないと有効になりません。 Beta2以降は標準で入っているようですが・・・。

投稿日時 : 2008年6月17日 22:24

コメント

# re: IE8の互換性について。 2008/06/18 10:03 fnya
おぉ。これはすばらしい。。。
Developer Tools でも設定が出来て、優先順位もちゃんとあるですね。
情報ありがとうございます!

# re: IE8の互換性について。 2008/06/18 21:40 ひろえむ
#fnyaさん

いえいえ(^^;

お約束していたのに書くのが遅くなってすみませんでしたm(__)m

# いつのまにか IE8 正式版がリリースされていた。 2009/03/24 20:43 ラボブログ
スパイスラボ神部です。 三連休ですっかり見逃していましたが、早くも IE8 正式版が出ていたのですね。 すっかり出遅れてしまったので、はてな検索を使ってIE8 ...

# re: IE8の互換性について。 2009/04/22 13:45 bigsky
情報拝見しました。

細かく説明されていて大変参考になりました。

# re: IE8の互換性について。 2009/04/23 8:51 もり ひろゆき
#bigskyさん


お役に立てて幸いです(^^)

Post Feedback

タイトル
名前
Url:
コメント