CSS2はhtml要素のbackgroundプロパティにtransparent値を指定した場合は、body要素のbackgroundプロパティの値をキャンバスの背景とすると定めている。しかしSafariはbody要素の背景をキャンバスの背景としないため、body要素のマージン領域にbody要素の背景が描画されない。
- Category: Mac, Safari, ver.3 Under
- Tag: background, html, transparent
例示
<style type="text/css">
<!--
html {
background: transparent;
}
body {
margin: 30px;
background: #808080;
}
-->
</style>
body要素のマージン領域は灰色で塗りつぶされるはずです。
実際の表示については検証ページをご覧ください。
修正状況
- Safari1.2でこの不具合が発生するそうです。
- Safari1.0でこの不具合は発生しないそうです。
報告書き込み
今週リリースされたばかりの 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 になって
発生するようになりました。


