14
Nov
2007
IE7のCSSバグ(border付きbox内のfloatでmarginが効かない)
今日ちょっとひっかかったIE7のCSSバグをメモしておきます。
どうやらborder付きのbox内に2重に入れ子にしたfloatさせたboxの親要素(ややこしい!)のmarginが効かなくなるようです。
口で言い表しづらいので、以下のソースを見てください。
- XHTML
<div id="page"><div id="content"><ul><li id="hoge">hoge</li><li id="huga">huga</li></ul></div></div>
こうなっている時、#contentにborderが設定されると、UL要素のmarginが効かなくなります。
CSSサンプルは以下の通り。
- CSS
* {list-style: none;margin: 0;padding: 0;line-height: 1;}div#page {width: 350px;}div#content {border: 1px solid red;}ul {margin: 50px;}ul li {float: left;margin-right: 5px;font-size: 50px;}li#hoge {background: blue;}li#huga {background: green;}/* clearfix */ul:after {display: block;clear: both;height: 0;visibility: hidden;content: ".";line-height: 0;}ul {display: inline-table;min-height: 1%;}/* for macIE \*/* html ul {height: 1%;}ul {display: block;}/* end of for macIE */

こちらはFirefoxの正常な状態。

IE7のバグ再現状態。marginが出ていない。
今回は取り急ぎpaddingで処理しました。
対処方法としては、borderのあるbox内で入れ子のfloatを使わない、とかそういった前提条件的な対処になってしまいそうです。
うまい対処方法がありましたら、教えていただけると幸いです。
Track back
このエントリーのトラックバックURL
- Tag Cloud
-
- (X)HTML
- Actionscript
- AdSense
- Amazon
- API
- blogパーツ
- bookmarklet
- CG
- clearfix
- cookie
- CSS
- firefox
- Firefox
- Flash
- Flex
- flicker
- gmail
- hack
- HUNTER×HUNTER
- IE
- IE6
- IE7
- IME
- iPod
- Javascript
- jQuery
- Mac
- MacBook
- mixi
- MT
- Netscape
- Opera
- QRコード
- RSS
- safari
- Second Life
- SEO
- sns
- thickbox
- tips
- TrackBack
- tumblr
- webサービス
- webデザイン
- web制作
- Web制作
- XML宣言
- はてな
- アイデア
- アクセシビリティ
- アクセス解析
- ウィジェット
- ウィルス
- エディタ
- エラー
- エンコード
- ガジェット
- タイトル
- タグ
- ツール
- デザイン
- ドラゴンボール
- ニコニコ動画
- ネタ
- バグ
- バッテリー
- フォト蔵
- フリーソフト
- ブラウザ
- プラグイン
- マウス
- メディア
- メーリングリスト
- ユーザビリティ
- リニューアル
- 不具合
- 事故
- 便利
- 冨樫
- 印刷
- 工数
- 感想
- 携帯電話
- 映画
- 検索
- 画像置換
- 考える
- 裏技
- 解決法
- 雑記
