2001-02-27

スタイルシート選択メニュー(N6

ちょっとややこしいです。頭を柔らかくしておいて下さい。

2001-02-27時点でのウチのサイトのCSSファイル構成は以下の通り。

この中で、それぞれのファイルがインポートするファイルが次のような時、

Default
Lavender メインファイル
Lavender メインファイル
Lavender IE4向けファイル
Lavender フルスペックファイル
Lemonchiffon メインファイル
Lavender メインファイル
Lemonchiffon IE4向けファイル
Lemonchiffon フルスペックファイル
Bluetone メインファイル
Bluetone IE4向けファイル
Bluetone フルスペックファイル

Netscape6はスタイルシート選択メニューを

と表示した。これを見た時はNetscape6はDefaultがLavenderを単純に読み込んでいるだけと言う事を判断して、linkの並びでは先にあるDefaultを優先しLavenderを切ったのだと考え、「思ったよりは頭良いね」と思った。だが、DefaultのファイルからLavenderではなくLemonchiffon メインファイルをインポートしたら、

と表示した。Defaultは単純にLemonchiffonを読み込んでいるだけなのでLemonchiffonが切られた理由は判る。だが、LavenderはDefaultからは読み込まれていない。考えられるのは、Defaultが読み込んだLemonchiffonがLavenderを読み込んでいるだけだと判断してLavenderを切ったのではないかと言う事。実際はLemonchiffon メインファイルがLavenderのメインファイルを読み込んだ後にLemonchiffon IE4向けファイルとLemonchiffon フルスペックファイルを読み込む事で上書きしていた。単にlinkがDefaultとLemonchiffonに挟まれているからか?と初めは考えたが、それではあんまりだ。

試しに独立したBluetoneをDefaultから読み込むようにしてみた所、

とちゃんと表示した。どうやらインポートの追跡はデフォルトの(alternateではない)スタイルシートに関してのみ行われるらしい。取り敢えず読み込みファイルを次のように変更した所、

Default
Lemonchiffon メインファイル
Lemonchiffon メインファイル
Lavender IE4向けファイル
Lavender フルスペックファイル
Lemonchiffon IE4向けファイル
Lemonchiffon フルスペックファイル

Netscape6は

とちゃんと表示した。これ以上の実験はやっていないので未だ断言は出来ないが、インポートファイルを三つ以上は追跡しないのではないだろうか。

取り敢えず仮定

Netscape6のスタイルシート選択メニューは、デフォルトのスタイルシートの読み込み先を追跡し、alternateなスタイルシートと重なる事があればalternateの方を切る。だが、読み込み先の追跡は三つ以上は行われない……のではなかろうか?

これはあくまで仮定です。この仮定自身がおかしい事もありますし、この仮定と違った挙動がある事も考えられます。それを見つけた場合、できる事なら僕にも連絡を下さると嬉しいです。