SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

クロスブラウザなレイアウトデザインテクニック

「ブラウザの表示モード」を理解してクロスブラウザなレイアウトを実現する

クロスブラウザなレイアウトデザインテクニック 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

本連載では、「クロスブラウザに対応したデザインテクニック」をテーマに、保守性や互換性に優れたXHTML+CSSの書き方を紹介していく予定です。第1回目は、基本中の基本「ブラウザの表示モード」です。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 Webページの表示結果がブラウザによって異なって見えるという問題。Web開発に携わる方なら一度は直面したことがあるのではないでしょうか。どのブラウザでもページが同じように表示されるようにするテクニック、いわゆる「クロスブラウザ対応」は現在のWebサイトが備えるべき緊急の課題となっています。

 連載第一回目は、このクロスブラウザなデザインを実現するために、まず最初に押さえておきたいポイント「ブラウザの表示モード」を中心に解説します。

対象読者

  • XHTMLとCSSの基本を理解している方。
  • Web標準に準拠したクロスブラウザなレイアウトデザインに興味のある方。

必要な環境

 表示確認用に、Web標準をサポートした複数のブラウザをご用意ください。本稿では、表示モードの切り替え確認に、Windows Internet Explorer6を使用して解説します。

クロスブラウザなデザインの基本的な考え方

 Win IEの最新バージョンは7ですが、依然としてIE6のシェアは高いままですね。新しいブラウザが登場しても、ユーザのバージョン移行は、なかなかスムーズには進まないものです。クロスブラウザなデザインを実現するうえで、まずは過去のブラウザに合わせるか、これからのブラウザに合わせるかを考える必要が出てきます。

 過去・現在・未来のすべてをカバーする表示が「クロスブラウザなデザイン」と思われるかもしれませんが、それは少し違います。Webの場合は、すべての環境で意図したとおりの見栄えを提供することよりも、まずはあらゆる環境で同じように情報(コンテンツや機能)を提供することの方が大切だからです。

後方互換性

 かつてのクロスブラウザなデザインの手法としては、過去のブラウザに合わせてWebページを制作するという「後方互換性」の考え方に基づいた手法が一般的でした。過去のブラウザ戦争で、ブラウザベンダは、いかにして他との差別化を図るかを競い合い、結果、ブラウザの独自拡張という産物をもたらしました。これにより、かつてのWeb制作者は、それぞれのブラウザの種類やバージョンに合わせてWebページを制作する必要があったわけです。TABLEレイアウトや透明GIFを駆使した固定的なレイアウトが多かったのも、そうした流れを受けたものだと言えるでしょう。しかし、こうした後方互換性を意識した制作方法では、文書構造と視覚表現に分離ができない、アクセシビリティを確保できないなどの問題が生じやすくなります。

前方互換性

 Web標準をほぼサポートしたモダンブラウザが主流となっている現在では、今後の新しいブラウザでも問題なく表示されることを意識した「前方互換性」を取り、クロスブラウザなデザインに対応するのが一般的です。

 「前方互換性」の具体策とは、単純に、Web標準に準拠したWebページを作るというものです。現在のブラウザベンダは、W3Cの仕様に準拠した表示を中心にブラウザの開発を進めています。今後新しい技術が開発されようとも、Web標準を外したものが開発されることはまずないでしょう。つまり、現在とこれからのWeb制作では、これまでのように個々のブラウザに合わせて制作するのではなく、Web標準に合わせて制作すれば良いというわけなのです。

 とは言え、さきほど「ほぼサポート」と表現したように、完全にWeb標準をサポートしたブラウザは今のところ存在しません。モダンブラウザといえども、細かなバグや実装差異があるのが現状です。ですから、標準に準拠さえすれば、全ての視覚系ブラウザで同じ見栄えを提供できるというわけではありません。クロスブラウザなデザインを実現するためには、CSSハックを利用してこれをカバーする必要があるわけですが、これについては、本連載の中でおいおい紹介していきたいと思います。

 ここで、覚えておいて頂きたいこと。前方互換性の取組みは、モダンブラウザでの閲覧のみを前提とし、過去のブラウザを全く無視するというものではありません。たしかに、デザイナの意図したとおりのビジュアルデザインを古いブラウザに提供することは難しくなります。ですが、冒頭で述べたように、Webというメディアは、その内容を伝えることが最も大切です。前方互換性の取組みには、あらゆる環境下で情報の伝達を確保するというアクセシビリティ的な意味合いも含まれているということを覚えておいてください。

後方互換性と前方互換性
後方互換性と前方互換性

ブラウザの表示モードとは

  IE6以降、Firefox、Netscape6以降、Opera7以降、Safari、MacIE5などの比較的新しいブラウザは「標準モード」と「互換モード」の2種類、または、これらに「ほぼ標準モード」を加えた3種類の表示(レンダリング)モードを備えています。このような仕組みは、過去に作られたWebページもこれまで通りに表示することができ、Web標準に準拠した新しいWebページは、仕様に沿った表示がされるよう用意されたものです。

標準モード(standards/full standards)

 「標準モード」は、Web標準に準拠した表示を行うモードです。仕様に沿っていない記述は無視されます。前方互換性を意識してWeb標準に準拠したWebページを表示する場合には「標準モード」を使用します。

互換モード(quirks)

 「互換モード」は、バージョンの古いブラウザと互換性を持たせた表示モードです。後方互換性を意識して作られたページを表示させたい場合には、こちらのモードを使用します。Web標準に準拠した妥当なCSSを書かなくてもブラウザ独自の解釈で、その間違いを補完して表示してくれます。ただし、その解釈はブラウザごとに異なるため、クロスブラウザな表示を実現するのは難しくなります。また、標準に準拠したWebページであっても、過去の表示と同じく、仕様と異なる解釈がされることがあります。

ほぼ標準モード(almost standards)

 「ほぼ標準」モードは、「互換モード」と「準拠モード」に追加された新しい表示モードで、Firefox、Netscape7/8、Safariなどに搭載されています。「ほぼ標準」モードは、基本的に標準モードと同じですが、テーブルのような一部の表示のみ後方互換性を維持したモードです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
ボックスモデルとは

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
クロスブラウザなレイアウトデザインテクニック連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 宮本麻矢(ミヤモト マヤ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2479 2009/06/22 18:38

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング