Last update Oct.25,2000

CSSのNC4.x対策

Netscape6が最終ベータ版であるRC3まで進んでいる今になってこんなことを載せてもいまさら感満載なんですが再インストール後の整理時に発掘したんで載せちゃいます。

勧告を出すだけ出しといてユーザーエージェントへの実装方法はオレ知らないよ! っていう、W3Cの姿勢にも相当の問題があるとは思うんですが、 Netscape Comunicator4.x(以下NC)においてC.S.S.がまともに表示されないのもまた事実。

本来CSSとはHTML文書からレイアウト記述を切り離そうというものなので、 各ユーザーエージェント(要するにブラウザ)から見て解釈できないスタイルシート を無視されても文章自体の最低限の閲覧には支障をきたさない。 はずなんですが! NC4.xではCSSの解釈というかレンダリングエンジンにバグ持ちのままで強引にCSSを解釈してくれちゃうので表示が凄いことになります。

これに困っている人、何それ?って人、さまざまいるとは思いますがわたしは困っている人です。 で、以前はこのクソったれなNC4.xでもなんとかIE5.xと同じような見栄えを実現しようとあがいていましたがもう諦めました。

前振りはここまでで、以下解決方法です。

NN4.xでは外部CSSファイルからさらに別の外部CSSファイルを読み込む

@import url(xxx.css);

に対応していません。そこを逆手にとって、 まず上記の一文のみが書いてある「damy.css」でも用意してやり、 その先に本命のCSSの記述を書いてやります。

実際の作業としてはたったこれだけです。 ただし、これはほぼ全てのCSS記述をあらかじめ外部CSSファイルに移していないと効果がありません。 ゴリ押しでインラインスタイルで記述している人は相当の手直しが必要になることでしょう。 しかし、後々のメンテナンスのことを考えればスタイルシート記述は外部CSSファイルに移しておいた方が断然楽なのでこれを機に御自分のサイトの論理構造とCSSを見直してみるのもよい機会でしょう。

しかし、この方法によってNC4.xの問題が解決すると、バグと言い切るにはちょっとかわいそうなくらいには中途半端だが対応してくれているIE4.01が一番厄介な存在になる・・・この@import url(xxx.css);にも対応しているから。

人生ままならないものです。