Safari (KHTML) CSSバグリスト

html要素に指定されたtransparent背景の扱いが不正(1.2)

症状

CSS2はhtml要素のbackgroundプロパティにtransparent値を指定した場合は、body要素のbackgroundプロパティの値をキャンバスの背景とすると定めている。しかしSafariはbody要素の背景をキャンバスの背景としないため、body要素のマージン領域にbody要素の背景が描画されない。

例示

<style type="text/css">
html {
  background: transparent;
}
body {
  background: #808080;
}
</style>

body要素のマージン領域は灰色で塗りつぶされるはずです。

修正状況

報告書き込み

今週リリースされたばかりの Safari 1.2 です。

* {
color: inherit;
background: transparent;
}
BODY {
color: #000000;
background: #ffcccc;
margin: 1em 10%;
}

こういうようなスタイルを使っていたら、BODY の margin 部分に
背景色が付かなくなりました。ちなみに、全称セレクタはユーザー
スタイルの効果を消すために使っています。どうも、

HTML { background: transparent; }
BODY { background: #ffcccc; }

となっている時に HTML 要素の背景色をキャンバスの背景色として
採用してしまうようです。CCS2 によれば、HTML 要素の背景色が
transparent の場合は BODY 要素の背景色をキャンバスの背景色と
すべきとあります。

この問題は、Safari 1.0 などでは起こりません。1.2 になって
発生するようになりました。