Web標準とその周辺技術の学び方
第4回 CSSの「いま」を知る
2009年10月22日
前回はHTMLやXHTML,HTML5について,その歴史などを振り返りました。今回はCSSのいまをみみていきます。CSS 2.1やCSS3の策定が開始してから数年経ちますが,現在はいったいどのような状況にあるのでしょうか。
CSS1やCSS 2.0は古いもの
2009年10月現在,勧告されているCSS仕様は次の2つです。
しかし,これらはCSS WGにより「古いもの」とされています。理由としては,仕様書に不備があるにも関わらずメンテナンスされていないこと,実装との食い違いが無視できないほどに多くなったことが挙げられています。
特に後者は,私達Web制作者にとって問題でしょう。仕様書に則ってスタイルシートを書いたのに,意図しない表示にならないといったことが起こりかねないからです。
実質的な標準はCSS 2.1
現在はCSS1, CSS 2.0に代わって,CSS 2.1がCSS仕様の基礎という位置づけになっています。
「勧告候補」というラベルであるため,まだ標準化が完了していないことになります。しかしながら,CSS 2.0で曖昧だった定義を明確にしたこと,実装状況を踏まえた改訂をおこなったこともあり,CSS 2.0よりも完成度の高い仕様として認識されています。
CSS 2.0の時代には,仕様が勧告された後に実装が行われるという,現在とは異なる策定プロセスがとられていました。このため,実装後に仕様の不具合や実装同士の非互換が発生した場合,対応が後手に回ってしまうため,修正に時間がかかっていたのです。
現在では「デファクト標準の策定」を重視するようにプロセスが改訂され,勧告には実装が必要とされています。これからの仕様については,勧告後に互換性に関して問題が発生するといったことは少なくなるでしょう。
改訂作業はおおかた終了しており,現在は2010年の勧告を目指しテストケースを評価する準備をはじめています。
CSS3のいくつかも実用段階に
CSS WGは,なにもCSS 2.1だけに注力しているのではありません。CSS 2.1はこれからのCSSの基礎となるため重要なのですが,次のレベルであるCSS3についても,もちろん作業しています。
CSS3はCSS 2.1とは異なり,複数の「モジュール」という小さな仕様書から構成されています。「セレクタ」「色指定」「ボックスモデル」など,機能ごとに仕様書を分割することで,策定・実装しやすいものがより早く進むという利点があります。
実は,いくつかのCSS3モジュールも勧告に近い段階まで来ています。次のモジュールは,策定がほぼ終了しており,実装についても新しいブラウザーであれば問題なく利用できます。条件がそろえば,CSS 2.1より早く勧告されるかもしれません。
そのほか,Media Queries (日本語訳) も,勧告にやや近いところまで来ています。iPhone用のWebサイト制作においてすでに利用されており,今後の普及についても期待できます。
ベンダーとの結びつきは,より深く
上に挙げた仕様ほど進んではいませんが,CSS Backgrounds and Borders Level 3やCSS Fonts Level 3 (Web Fonts), CSS Multi-column Layoutについても,いくつかの機能が実装されています。
これらの仕様は,Webデザイナーからの要望をもとに,ブラウザーベンダーが優先して実装しているものです。また,ベンダーによる拡張を仕様として定義する動きもあります。Appleが独自に実装をはじめたCSS Visual Effects(Transforms, 3D Transforms, Transitions, Animations)などがその一例です。今後もこういった,ベンダーとの密な連携による仕様策定が行われるように思われます。
CSS スナップショットに見るこれからのCSS
CSS 2.1とCSS3についてそれぞれ簡単にまとめてみましたが,これら両者はどのように関係するのでしょうか。このヒントとなるのが「CSS スナップショット」というプロファイルになります。
CSS スナップショットでは,これまでのCSSの歴史を簡単に振り返ったうえで,「今日のCSS仕様」をCSS 2.1, Selectors, Namespaces, Colorの4つから構成されるものとして定義しています。これらの仕様は勧告には至っていないため,プロファイル自体も正式版ではありませんが,CSS WGがCSSに対してどのような見解を持っているのかを知ることができる貴重な文書です。
まとめ
CSS 2.1や一部のCSS3モジュールはまだ勧告されてはいませんが,実装状況を踏まえるとほぼ問題なく利用できる段階に達しています。他のCSS3モジュールについてはまだ時間が必要ですが,こちらにおいても実装が少しずつ進んでおり,新しいブラウザーで一部を体験することが可能です。

