「なんか変? な玄関」顛末記

|玄関[I]どこまで彷徨う[R]>「なんか変? な玄関」顛末記

ローカルではまともに表示されるのに…

 当サイトの玄関は、サイト全体の司令塔の役割を果たしていますので、更新のたびに書き換えます。基本設計をしてから久しいので、自分がいったいどんなタグを使ってるのかなんてほとんど忘れた状態で、新着情報だけを書き換えておるわけですが、先日、いつものように新着だけを書き換えてUPしたところ、「赤字で、とても小さな文字のページ」に変わってしまっていました。

変になった玄関。クリックすると拡大します。 ローカルで表示を確認すると、全く問題がなく、サーバにUPすると全く身に覚えのないデザインになります。なにせ、アクセシビリティ、ユーザビリティその他諸々を勘案しまして、PerlにPHP、JavascriptにCSSを駆使した、いいかげん素人にはあるまじきHTMLページとなっておりますが、まさしく生兵法は怪我の元状態。どこに問題があるのかわからず、とりあえず、正常に動いていたソースを元にして、書き戻したらとりあえずは直ったのですが。

 なにしろ、このサーバでだけ、しかも、すべてのブラウザでそうなる、というのがものすごく不思議でして。みなさまに検証をお願いしたところ、原因が判明しました。

スタイルシートファイルがなかった

 ネットスケープ・ナビゲータ Ver.4のスタイルシート実装がむちゃくちゃなのはつとに有名な話ですが、特に、ポジショニングを指定すると、文章が全部重なり合って、何も読めなくなります。当サイトでは、玄関にだけポジショニングを指定してあって、NN4には一般のスタイルシートを読み込ませず、別のスタイルシートを読み込ませるようにしたつもりだったのです。

 ところがどっこい。実際には、NN4とIEその他の違いを利用して、Classを2つ設定していたらしい。一時は使っていたはずのNN4用のスタイルシートそのものが、サーバからなくなっていたらしい。

 その結果、何が起きたかと言いますと。

  1. 存在しないスタイルシートを読み込もうとする。
  2. ないので、ロリポップが404エラーのファィルを返そうとする。
  3. Htmlファイルは存在するので、ブラウザはそれを表示する。しかし、CSSは一つ足りないので、404エラーhtmlに記述されたCSSを読み込んでしまう。
  4. DTとDD,LIについては「%」で文字サイズ指定をしていたが、UL, DLについてはサイズ指定をしていなかったため、ロリポップのスタイルが読み込まれた。DT,DD,LIは上位タグの文字指定を、相対サイズ指定では受け継ぐので…。
  5. サイズ、色を指定しなかった部分、たまたまロリポップと同じラベルを使っていた部分が、ロリポップなスタイルになった。

ということが判明いたしました。原因究明にご協力くださった皆様、どうもありがとうございました。

 404エラーのファィルも自作にする予定なので、たぶんもうこんなことは起きないと思いますけどね。どうして、存在しないCSSが突然書き込まれたかという謎は残るけど。

 一つ賢くなったことはたしか。でも、こんなことばっか賢くなってもなあ。よーのすけは技術者じゃないんだからさ。

|玄関[I]どこまで彷徨う[R]>「なんか変? な玄関」顛末記

車椅子で彷徨えば扉
Yoonosuke Hazuki[MailTo_ocean@mbc.nifty.com]