ブラウザごとのデフォルト・スタイルシートの違いを吸収するためのスタイルシートをメンテするのが面倒になったので、YUI 3のCSS Resetを使うことにした。が、このサイトではちょっとした問題が起こった。少し前にTwitterでつぶやいたりしたhtml
要素にbackground-color
やbackground-image
を指定した場合、body
要素の背景が描画エリアいっぱいにならなくなるというCSSの仕様絡みの問題。
この仕様によってbody
要素に指定していたヘッダの背景画像がずれてしまった(ずれるサンプル)。ずれる理由は上記仕様によりbody
要素の上下でmargin
の相殺が起こり、margin
の相殺が起こった部分は透明(親であるhtml
要素)が透けて見える)ようになり、背景画像の開始点はそれに続くbody
要素のコンテント・エリアになるから。
html {
color: #000;
background: #FFF;
}
問題になるのは以上の部分なので、reset(-min).cssより後に読み込まれるCSSファイル内で、
html {
background-color: transparent;
background-image: none;
}
とすればとりあえず回避できる。
YUI 2.4.0でbody
要素からhtml
要素にcolor
プロパティとbackground-color
プロパティが移動されたようなんだけど、理由書いてない……。