2006年9月1日金曜日

CSSの力

CSSの最上級の力とはどのようなモノかまだまとめていない。

前のレベル定義ではLevel8が最高だったが、最近いろいろな人とお会いしてやはりその上があるな、と感じている。(うれしい限り)

たぶん企業サイトでCSSを構築していく時に必要な能力としてどういった能力があるのかを夢想していくとわかってくるに違いない。

最近の経験から優れているなぁと思う要素は以下の通り。

CSSは一ファイルなのに、HTMLつくる人はいっぱいいる。 そうするとCSSを新たに起こさなければいけなくなったときにどうファイルをいじるか、というあたりにノウハウが必要。

理想はCSSが必要なモノはできるだけシンプルに共通ファイルに収まりつつ、各カテゴリや各ページに本当に必要な特殊なモノだけ個別ファイルをつくっていくということだと思う。で、大きなサイトになると、全部のページのデザインを一人のデザイナがやるわけでも無かったりとか、HTMLと一部同時並行になったりする関係で、CSSもHTMLをつくっていく課程で洗練されてくる。CSSをプログラムのライブラリみたいなモノだと思うと、ちょこちょこリファクタリングする必要があると言うことだ。

で、サイト作成にはたいてい時間がたりないので、最初に見えているところを基本のCSSに落として、それを人に使ってもらいつつ、その共通CSSを徐々に更新していくという流れをとる。

とするとそのCSSを作成するのに必要な能力が、

  • 今後のデザインの方向性や必要なテンプレートを見渡す力
  • CSSのレベル
    • バグ
    • 一貫性
    • シンプルさ
    • ソースの可読性

あたりかと思う。 それをHTMLの流し込みとか細かいページのコーディングが始まる前にちょちょっとつくってしまうことが重要なのだ。で堂々と「みなさんこれを使ってください。できるだけ新規はなしの方向で」と言ってしまう説得力。
そしてその後の作業者がもしCSSを加えたい場合、最初のCSSでは不足があった場合など基本のCSSをメンテナンスしてリリースする。

以上のことをやってしまうためにはたとえば下記のようなスキルが必要である。

  • CSSの最新動向をキャッチアップしているか?
    今であれば
    • IE7で何が変わるか?
    • CSS3で何が変わるか?
  • 大人数でHTMLコーディングをやる際に起こりがちなことをどう回避するか?
    • セレクタ
  • HTMLをシンプルにしたまま、CSSもシンプルにしたままバグを減らすためのコーディング
    • IE5.5やNNやSafariの古いバージョンなどでたまに起きる理不尽なバグはどういう状況で出やすいか?
    • ハックは使わないで対応できるか?
DOCTYPEの件は当然、コンディショナルタグによる振り分けなどもわかっている必要がある。

同時に大規模サイトをやるときに必要な、CMSやJSの概念やある程度の知識など持っているに越したことはないのではないか?

うまくまとめられたら将官を考えていきたいと思う。