スタイル制御の命令式



0   名前: KONDOH : 2007/01/10(水) 02:01  ID:P7ooBfPM
最近しばしば目にしますので、確認のためにお教えいただけないでしょうか。
ツリーメニューなどのコードで、display=""という書き方があるのですが、
これは正しい書き方と考えてよいのでしょうか。
display="none"に対してdisplay=""としています。
ご教示ください。お願いします。

1   名前: 匿名 : 2007/01/10(水) 02:01  ID:Rt.j/.AI
> display="none"に対してdisplay=""としています

少なくとも CSS 的に見れば、{ display: none; } に対して { display: ; }(あるいは好意的に解釈して { display: ''; })は、明らかに文法エラー。CSS の規定では、不正なプロパティ宣言は無視される。

では、CSS 以外で style.display に空文字列を許容する規定があるか。私が確認した限り、

・MSDN には style.display = '' の例文が載っている。だが display 値と空文字列に関する明確な規定が見付からない。
・MDC には規定がない。
・DOM Level 2 CSS では、style.display に値がセットされていなければ空文字列を返すが、style.display に空文字列をセットした場合はエラー DOMException.SYNTAX_ERR を投げる。

現状のブラウザのほとんどは、style.display = '' によって display を各ブラウザのデフォルト値に戻す(removeProperty('display') と同じように)。だが、この動作に関する明確な規定はない(エラー・無視の可能性も十分ある)。まあ将来的には CSS Object Model で規定されるかもしれないが、現状では自分の責任で判断せよ、と言う他ない。

一覧へ戻る