趣味Web 小説 2003-09-06

CSS は HTML 文書の作成を簡単にするか?

余白もフォントいじりもCSSで再現可能ですが、CSSを正しく使おうとする限り、HTMLを適当に使っていたときのような気楽さ、自由さは再現できません。なぜなら、CSSに可能なことは、あくまでもHTMLによる文書の構造化の様子をプレゼンテーションすることに限られているからです。

具体例を示しましょう。

文中の「ある単語」を、黄色の大きな文字にしたい、と考えたとします。地の文と差異をつけるのですから、これは強調ということになりましょう。そこで、「ある単語」をem要素としてマークアップします。このときしばしば問題となるのは、既に先の文章で、赤い太字のためにem要素を使ってしまっている、ということです。強調に使える要素はem要素とstrong要素しかないので、困ってしまいます。

仕方ないのでem要素をclassで分類していくのですが、この手続きの面倒くさいことといったらありません。

font要素で装飾していた頃は、そのときの思いつきで自由に装飾ができたのに、CSSを正しく使おうとすると面倒でたまらなくなります。しかも、classをclass="yellow"なんて指定してしまったら、リニューアルの際にHTMLに手を加えないでいいというCSSの利点もなくなってしまいます。(リニューアル後には配色も変わるでしょうから、yellowのままでは困るでしょう)

こうしたケアレスミス(実際には本質的な理解不足なのですが)はCSSの導入後にしばしば付きまとう問題で、「なんでちっともサイト作成が楽にならないのだろう?」と悩まされることになります。

結局、そもそもCSSはHTMLのオマケでしかないのだけれども、これまでHTMLで装飾をやってきた方にとっては「HTMLとは何ぞや」という部分がスコーンと抜けていて、装飾のことしか頭にない。だから、「正しいやり方」が持っている不自由さが、たまらなく窮屈に感じるはずです。

HTMLは不自由なものです。主な要素は50に満たないわけです。強調は2種類しかないし、本文周りの要素はほとんど見出しと段落と箇条書きしかありません。非常に制約がきついのですね。

青い色にしたい文字と黄色にしたい文字、なぜ色を変えたいのか、本人もよくわからない場合が多いはずです。「色を変えたい理由に従ってclass名を与えよ」なんてアドバイスがよくありますが、それらをいちいち考えなくてはならないなんて、馬鹿馬鹿しいと思われる方が少なくないでしょう。

人間の欲求はたいてい言語化されないところにあって、多くの思いが陰に隠れているものです。それをたった50程度の要素に分類整理して構造化しようというのが、無茶な話なのです。

もちろん、HTMLの制約の多さには意味があります。HTMLは人間ではなく計算機が文章を処理するために用意されたものであって、だから逆に分類があまり微細では困るのです。例えば、見出しだけ抜き出す、ということを考えましょうか。HTMLではh1~h6要素が見出しですが、人間の考える見出しは、そんなに単純なものではありません。印刷物などでは実に多様な見出しの表現がありますが、人間は「無数にあるパターン」からほぼ正確に本文と見出しを分離することができますね。「無数のパターン」を計算機に覚えさせることは不可能です。そのようなプログラムは無限の長さのコードを持つことになってしまいます。だからHTMLでは見出しを単純化して、たった6種類の要素に限定したのです。

けれども、人間は見出しが6種類しかないのでは満足できませんでした。だから、HTMLは本来の使い方をされませんでした。HTMLの個々の要素が持つ本来の意味は無視して、ブラウザの表示結果に意味を持たせたのです。無数のパターンを持つ表示結果に、自分の思いを込めたのです。

人間がこの表現欲を抑制しない限り、結局はCSSなど使っても、HTMLによるデザインの抱える問題を根本的に解決することなどできません。強調表現が2種類では足りないのだといえば、どんどんclassが増えていきます。ちっとも作業は楽になんかなりません。

Information