次の方法で共有


CSS Expressions のサポート終了について

更新日: 2008 年 10 月 16 日


本記事は、Internet Explorer 開発チーム ブログ (英語) の翻訳記事です。本記事に含まれる情報は、Internet Explorer 開発チームブログ (英語) が作成された時点の内容であり、製品の仕様や動作内容を保証するものではありません。本記事に含まれる情報の利用については、使用条件をご参照ください。また、本記事掲載時点で、Internet Explorer 開発チーム ブログ (英語) の内容が変更されている場合があります。最新情報については、Internet Explorer 開発チームブログ (英語) をご参照ください。

翻訳元 : Ending Expressions (英語)



標準への準拠、パフォーマンス、信頼性、およびセキュリティといった設計基準は、Internet Explorer 8 のすべての設計を構成しており、新機能だけでなく既存の機能に対しても適用されます。この結果、CSS Expressions は Internet Explorer 8 標準モードではサポートしないことになりました。この変更については過去の IEBlog で案内していますが、今回の投稿でこの決定についての詳細をお伝えいたします。次の FAQ でこの機能の簡単な概要、設計変更を決定した根拠、そして今回の変更がお手元のサイトにどのような影響を与えるのかを示します。

CSS expressions とは?

‘Dynamic Properties’ (英語) としても知られる CSS プロパティの拡張は Internet Explorer 5 で導入されました。それ以前にも jQuery や Dojo といった JavaScript ライブラリーが考案されていましたが、この拡張によってWeb 開発者はスクリプトとページを、CSS セレクター を通じて動的に関連付けることが可能になりました。例えば、次のCSS 宣言文は時刻に応じて、指定したページの背景色を更新します:

div.title { background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" ); }

なぜ CSS expressions のサポートを終了するのですか?

  • 標準への準拠のためです
    CSS expressions は Internet Explorer の独自実装であって、他の環境との相互運用性を持ちません。
    CSS expressions は通常 Internet Explorer のバグを回避するため、もしくは min-width や max-width のようにブラウザーがサポートしていないCSS 2.1 の機能をエミュレートするといった場合に用いられています。Internet Explorer 8 では、これらのバグ修正だけではなく、未実装の機能をネイティブでサポートするべく努力しました。
  • パフォーマンスを向上させるためです。
    Steve Souder のような Web パフォーマンスの専門家がフロント エンドのパフォーマンスを改善するために CSS expressions を利用しないこと (英語) を推奨しているように、CSS expressions の実行は非常に高い負荷を必要とします。
  • ブラウザーの攻撃対象面を減らすためです。
    CSS expressions はスクリプトの実行コンテキストを公開してしまうので、スクリプト インジェクションのような攻撃を受ける可能性があります。

 

Internet Explorer 7 モードと Quirks モードであれば、まだ expressions は利用できますか?

はい。下位互換性を維持するため、Quirks と IE7 Strict モードでは CSS expressions は実行されます。しかし Internet Explorer 8 beta 2 以降、IE8 標準モードでは CSS expressions は無視されます。

私の管理する Web サイトは CSS expressions に依存しています。どのような影響を受けるのでしょうか?

Internet Explorer 8 の新しいレイアウト エンジンによって、Internet Explorer の CSS 2.1 に関するバグと短所を回避するために記述されたほとんどのCSS expressions は既に不要となりました。標準に準拠した相互運用性のある動作においては、サポートが終了した正しくないプロパティとして解釈されると予想しています。特定の目的をサポートするCSS expressions も、本質的には標準的な JavaScript を用いて、相互運用性を確保したまま、システムに負荷を掛けることなく実現可能です。詳細な方法は当然ですがお手元のシステムに依存します。この投稿へのフィードバックを参考に、今後の投稿でサンプルに取り組むかもしれません。

CSS expressions のサポートは終了となるため、今回のリリースではCSS expressions を用いて回避していた深刻な問題を回避するために多大な努力を払いました。このことはInternet Explorer 8 をユーザーにとって、より高速で安全なものとすることに役立ちました。

Sylvain Galineau
Program Manager

 

ページのトップへページのトップへ