CSSバグリスト
CSSバグリスト
CSSバグリスト
Win IE
・ボックスの幅や高さを算出するときにパディングやボーダーのサイズを含めてし
まう
・first-letter擬似要素が親要素のフォントサイズを継承しない場合がある(IE5.5)
↓回避方法
WinIE6では、要素本体のスタイルと擬似要素のスタイルの両方をstyle要素や外部
スタイルシートで指定すればバグを回避できる。
・ブラウザの閲覧領域からはみ出している要素がないにもかかわらず、スクロール
バーが表示される場合がある。
position指定をしない状態でもこのバグは発生するようです。
WinIE6.0では、閲覧領域の幅に近い幅を持つ要素があるときに横スクロールバーが
表示される場合があります。
↓回避方法
閲覧領域をはみ出ないように調整する。
・最後の子要素が非匿名ブロックレベル要素である要素の四方にパディングを設置
し、さらに左または右にボーダーを設置すると、その要素に後続する要素の内容物
がボーダーを設置した方向にずれてしまう。
↓回避方法
ボーダーを内側の要素に設置するなどの方法で不具合を回避することができます。
あるいは、外側の要素に対して下ボーダーを設置することでもこの不具合を回避す
ることができます。
・フォーム部品要素にfont-sizeプロパティの値をダイナミックプロパティを用いて
指定したとき、文字の大きさにはダイナミックプロパティの値が反映されるが
フォーム部品のサイズは初期サイズのまま変わらない。(5.0)
↓回避方法
Win6.0では改善されている。が5.0、5.5はダメだ~・・・
・img要素にパディングを設定しても反映されない。(5.0)
↓回避方法
WinIE6.0互換モード及び5.5以前ではimg要素にパディングが効きません。
WinIE6.0標準モードではパディング指定が反映される。
・フォントサイズの指定が表要素に継承されない(5.x)
↓回避方法
ページ全体に共通するスタイルの指定はbody, th, tdの3要素に一括して行うこと
で、この不具合を回避することができる。
・body要素の内容領域をはみ出す部分がレンダリングされない(IE6)
body要素の外側に文字列などが配置される場合はその部分がレンダリングされる。
↓回避方法
bodyのマージンなどに負の要素をいれないこと。
・li要素の子孫にリスト要素があるとリストマークが上方にずれる
li要素の子孫にリスト要素(ul, ol, dl)を置くと、li要素につくリストマークが上方
にずれて表示される。また、この状態のli要素に上ボーダーを設定するとリストマー
クが消える。また、最初のli要素のリストマークも消える。
↓回避方法
1,リスト要素をブロックレベル要素で括る。
2,リスト要素の前後に何らかの文字を置く。コメントでもよい。
・前景色にtransparentを指定すると#000000を指定したものとして扱われる
(IE5.5 IE6)
↓回避方法
特にない。
・背景色が指定された要素内にフロートがあるときに要素内の文字が消える(IE6)
背景色を指定したブロック要素内にフロート配置した要素があるとき、ブロック要
素内の文字列が消える。
↓回避方法
このバグは、親要素の幅をwidthプロパティで明示することで回避できます。
・内容物のないボックスでパディングや内容領域が設置されない(5.0)
文字列などの内容物が存在しないボックスで、内容領域やパディング領域の高さ算
出が不正。
1,widthプロパティもheightプロパティも指定されておらず、かつ内容物が存在し
ない要素が生成するボックスが後続の要素を囲むように設置される。
2,親要素の開始タグと子要素の開始タグの間または子要素の終了タグと親要素の終
了タグの間に文字列などの内容物が挟まれていないとき、親要素の上下パディング
が常に0になる。
↓回避方法
widthプロパティ・heightプロパティを指定する。
・font-familyを指定した要素で文字化けする(5.x/6.0)
font-familyプロパティの指定値が[欧文フォントと総称ファミリ]または[総称
ファミリのみ]である要素では、日本語などの2バイト文字が「□」や「・」に化け
ることがある。実体参照を用いて指定した文字だけで同様の文字化けを起きること
もある。
↓回避方法
日本語文字を含むフォントをfont-familyプロパティで始めに指定する。
・body要素に設定したボーダーが閲覧領域全体を囲むように表示される(IE5)
body要素にボーダーを設定すると、マージンや子孫要素などを無視し、閲覧領域を
囲むようにボーダーが表示されてしまう。
↓回避方法
特になし。
・マージンに負数が指定された要素でボーダーがずれてゆく(IE6)
垂直方向のマージンに負の値が指定された要素を含む、要素のボーダーや背景が本
来の位置と外れた場所に表示される。
↓回避方法
特になし。(あまりやんない)
・親要素からはみ出した子孫要素の一部が消える(IE6)
親要素でheightプロパティを使用し、さらに子孫要素の縦方向マージンに負の値を
指定して親要素からはみ出させると親要素からはみ出した部分が消えてしまう。
↓回避方法
特になし。(あまりやんない)
・ポジショニングされた要素が後続要素のマージンを引き継ぐ(IE5.5)
絶対配置された要素が、後続する別の要素のマージンを引き継いでしまう。
↓回避方法
1,このバグを回避するには、マージンを引き継いでしまう要素で左からの位置(left
プロパティ)を定義し、さらに親要素で幅(widthプロパティ)を定義してくださ
い。
2,または、親要素にボーダーかパディングを設定してください。
・インライン要素に指定したパディングやボーダーの上下が消える(IE6)
高さが指定された要素内にあるインライン要素にパディングやボーダーが指定され
ているとき、パディングやボーダーの親要素をはみ出している部分が消えてしま
う。
↓回避方法
上下部が消えるインライン要素に position: relative; を加えて指定すればこのバグ
を回避できます。
・背景に関する指定がprintメディアに反映されない(IE5.5)
background-repeatプロパティにrepeat以外の値を指定すると、背景がまったく
印刷されない。
↓回避方法
背景が指定された要素の幅(widthプロパティ)または高さ(heightプロパティ)
を明示すると背景画像が印刷されるそうです。
・line-heightが指定された要素内でvertical-alignの%値指定が正しく反映されな
い(IE6)
line-heightプロパティが指定された要素の子孫にvertical-alignプロパティを%値
で指定した要素が含まれていると、その要素を含む行の配置が乱れる。
↓回避方法
特になし。
・rightプロパティが親要素のボックスを基準にした配置を行わない(IE5.5)
ポジショニングした要素の子孫要素を絶対配置するとき、rightプロパティは指定し
た値どおりの配置をしない。
↓回避方法
親要素で幅を指定(widthプロパティ)すればこの不具合を回避できます
・幅や高さを指定した要素でdoubleボーダー領域に背景が描画されない(5.x/6.0)
widthプロパティやheightプロパティを指定した要素では、二重線ボーダー
(border-style: double;)の外側の線と内側の線の間の空白部が当該要素の背景で
塗りつぶされない。
↓回避方法
特になし。
・ボックスサイズが内容物に合わせた大きさへ強制的に調整される(IE6)
overflow: visible; が指定されているとき(初期値)、ボックスをはみ出す内容物
はボックス外に表示されると規定されているが、IEでは内容物に合わせてボックス
が拡大される。
↓回避方法
長い半角英数文字列が存在する要素では、ボックス幅が拡大されます。