
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 になって
発生するようになりました。