gihyo.jp » WEB+DESIGN STAGE » 連載 » 独学で極める “Webデザイン”の技と心 » 第8回 クロスブラウザ対応CSSでつまずかない

独学で極める “Webデザイン”の技と心

第8回 クロスブラウザ対応CSSでつまずかない

前回はサンプルを交えながら(X)HTMLとCSSの関係をおさらいしました。どれだけ画像を沢山利用したグラフィカルなサイトでも,画像を使わないシンプルなサイトでも基本はまったく同じであり,(X)HTMLは文書構造を,CSSでは文書の要素に対して見た目等の振る舞いを指定することにより,ブラウザで私たちが閲覧できる状態になります。

ところがリファレンス等を参考にしながら正しく(X)HTML/CSSを書くように頑張ってみたわりには,ブラウザ(閲覧環境)によっては表示が崩れてしまうなど,最初はなかなか思い通りに表示されないことが多いものです。

W3Cが技術を標準化するため(X)HTMLやCSSの仕様書を勧告していますが,現実に普及しているブラウザでは,仕様に完全準拠しているとは限りません。そのため,普及しているそれぞれのブラウザの特徴まで理解した上で(X)HTMLとCSSの設計をすることが必要です。

ブラウザの特徴を理解とは言っても,難しく考える必要はありません。

(X)HTMLとCSSを書く上での基本ワークフロー

  1. まず第一に比較的仕様に忠実な新しいブラウザを使って動作確認を行うようにする
  2. 最後の仕上げの段階に古いブラウザ(仕様サポートが不十分なブラウザ)との表示の差を埋める

この基本のワークフローを守り,きちんと理想の状態で組み立ててから現実にあわせるテクニックで補うことが大切です。

ブラウザ表示の差を埋めることを楽しめるようになってしまおう

私が今までに独学で(X)HTMLやCSSを学んできて,各種ブラウザの表示の差異を埋めることの学習こそが一番時間のかかるものなのではないかと思うくらい,Internet Explorer6以前のブラウザ対応には手をやいてきました。

全てのブラウザで仕様どおりに忠実に表現されるものだとしたら,(X)HTMLとCSSはもっともっと簡単になると思います。もちろんそれが本来理想とするところでもあるのですが,実は各種ブラウザの表示不具合があるからこそ解決できたときの楽しみが大きいと言う見方もあります(私自身もそう思っています)。勉強すればするほど,なかなか思い通りに動いてくれないブラウザすらも可愛らしいものと思えてしまうほどです。

ただし,ブラウザの表示の差異を埋めるテクニックには「標準」「仕様」という観点から見てバッドノウハウとされるものも多くあることを頭の片隅に置いておいてください。

まずは比較的Web標準に準拠した新しいブラウザ(※1)を使ってページを制作していきましょう。

※1)Web標準に準拠したブラウザはどんなブラウザか
Web標準に準拠している(勧告に準拠している)かどうかを測るために,Web Standards Projectが作成したAsid2 testが有名です。リンク先のページを開き, Take The Acid2 Test をクリックしてスマイリーマークが正しく表示されたでしょうか。表示されたならば,今お使いのブラウザは準拠していると言えます。その他,Acid2 testに合格したソフトウェアについてはAcid2のWikipediaも参考にしてください。

他のブラウザと比較して思うようにいかなくなってしまう原因

つまずくと思われる点は,大きく分類してこの3点ではないかと思います。

  1. レイアウトが崩れる
  2. 予期しない空白ができてしまう
  3. フォントサイズが揃わない

今回は一番問題が大きく感じられる「1.レイアウトが崩れる原因」について解説します。

レイアウトが崩れる原因のほとんどが,(X)HTML文書のDOCTYPE宣言の違いによってレンダリングモードが変わることによるものです。

DOCTYPE宣言とは,平たく言えば「(X)HTMLのバージョンと仕様はこれですよ」と宣言する記述のことです。

仕様通りに正しく書かれた(X)HTMLのソースを覗いてみてください。文書の一番先頭に, 例えば以下のような記述がされています。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">

これらがDOCTYPE宣言です(上の例はXHTML1.0 Transitional,下の例はHTML4.01 Strictです(※2))。

そのDOCTYPE宣言は,それぞれ(X)HTMLのバージョンごとに記述が決まっていますが,CSSの解釈が乏しいブラウザと互換性を保つために,ほとんどのブラウザで

  • 標準準拠(standards)モード = CSSを仕様通り解釈するモード
  • 後方互換(quirks)モード = CSSの間違った解釈をするモード

を簡単に変更できるようにするためのスイッチが用意されています。

これをDOCTYPEスイッチ(※3)と言います。

※2)
そもそもなぜこのように(X)HTMLにもバージョンがいろいろあるのかというのを解説すると長くなってしまうのでここでは割愛しますが,(X)HTMLのバージョンによって利用できる要素・属性などのルールが多少異なるため,目的に応じて選びます。
※3)
DOCTYPEスイッチについてはこちらの資料が参考になります。http://www.seo-equation.com/www/cat25/doctype_switching

著者プロフィール

山田あかね(やまだあかね;purprin)

エスカフラーチェLLC,デザイナー。名古屋出身。Web業界とまったく関係ない業種で独立して働く傍ら,Web/XHTML/CSS等技術を独学。2005年「コトノハ -○×ソーシャル」のデザインリニューアルを行ったのをきっかけに上京し転職。株式会社paperboy&co.で主にソーシャルブックマークサービス(POOKMARK Airlines)等の Webサービス開発に携わる。2007年1月,エスカフラーチェLLC の設立に参画し,デザイナーとして幅広く活躍中。

URLhttp://purpr.in/blog/

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

Ruby Freaks Lounge

Rubyに関わる,執筆者自身の旬なテーマを扱った,リレー形式の連載です。

これでできる! クロスブラウザJavaScript入門

JavaScriptはウェブ制作において避けては通れない重要な言語ですが,JavaScriptに苦手意識を持たれている方は少なくないようです。 その最大の原因がクロスブラウザ対応という課題であり,本連載ではクロスブラウザ対応のテクニックを詳細に解説します。

ビジネスで成功するためのシステム運用管理のポイント

システムの多様化,技術進歩に伴い,ITシステムの運用管理の必要性が年々高まっています。本連載では,システムの運用管理とは何かについて,現場のニーズと具体的な指針を押さえながらを解説します。

2010年版SEO体得講座

本連載では,いまや企業サイトの戦略の1つとして欠かすことのできないSEOについて,最新トレンドからすぐに使えるTipsまでを紹介します。

小型Linuxサーバの最高峰 OpenBlockS 600活用指南

搭載メモリの増加,CPUクロックの向上など,あらゆる面が強化された期待の新モデルOpenBlockS 600。この記事ではOpenBlockS 600の紹介から,活用するためのさまざまなノウハウを紹介していきます。

はじめMath! Javaでコンピュータ数学

プログラミング言語入門者向けに,知っていると役立つ数学的トピックスを紹介します。簡単な演習問題と解説で,即活用できる知識を目指します。

教科書には載っていない ネットワークエンジニアの実践技術

ネットワークエンジニア,インフラエンジニアのトラブル対応には,時には「教科書通りにいかない」テクニックが必要となります。資格試験では得られないこうした実践的な技術について,実例を元に紹介します。

Googleケータイ,世に現る

2008年9月,Googleが中心となって開発されている「Android」を採用した携帯電話「T-Mobile G1」が発表されました。本連載ではT-Mobile G1を中心にGoogleケータイに迫ります。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス

最近のコメント