テーブルのCSS

スタイルシートの文献を見ていたらempty-cellsというテーブルのスタイルを発見。「空のセルの枠線を表示するか」と言うスタイルで、既定値は「表示する」らしい。と言うことは、標準では表示してくれないIEの負けか。
まぁどっちにしても、すでに を自動追加するように書き直しちゃった後だし。
とか思いつつ、別のスタイルについての記述も見てみると・・・border-collapseの動作がFirefoxOperaで全く違う、というか「全く反対」になっている。さらにIEでは謎の挙動が。たぶん、「そもそも枠線を表示するのか否か」とかの設定からして色々競合してこの結果になるのだと思うが。
(ここのサイトのサンプルを表示した http://www.scollabo.com/banban/ref/css.html
構築中のWebアプリのCSSでテストすると、でのブラウザでも期待通りの動作をした。・・・でも「デフォルト値はcollapse」なのに無指定時の動作はsepareateだ。また微妙な対応の仕方を・・・。*1
まぁこの辺は実装されていないと考えればいいのか(笑)
ところで、実験の途中でIEFirefoxOpera組の表示が狂ったので何かと思って調べると、スタイルシートの記述に失敗して閉じ中括弧を二重にしている箇所が見つかった。FirefoxOperaは「二重閉じ括弧の次のルールを無視」していたようす。文法エラー時の挙動の違いは特に既定はされていないのだろうか。そういえば、IEは「子孫セレクタの入ったルールは、並列表記された分まで無視」していた。*2並列表記された分は有効であっておかしくないと思うが。いわゆるCSSハックではこういう微妙な挙動を利用するのだろうなぁ。

*1:まぁ、以前のバージョンとの互換性を保つためでしょう。それとも「ブラウザの標準スタイルシートにsepareteと書いてある」のか?

*2:a > b, a c{....}の時に、a cのルールも無効になっていた。