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を使わない、とかそういった前提条件的な対処になってしまいそうです。
うまい対処方法がありましたら、教えていただけると幸いです。
- Nov 14, 2007 2:20 AM
- コメント(0)
- トラックバック(0)
-
Track back
このエントリーのトラックバックURL
- Tag Cloud
-
- Actionscript
- AdSense
- Amazon
- API
- blog
- blogパーツ
- bookmarklet
- CG
- cookie
- css
- firefox
- flash
- gmail
- greasemonkey
- hack
- IE
- IE6
- IE7
- IE8
- Javascript
- jQuery
- macbook
- mixi
- MT
- MT3
- MT4
- music
- opera
- RSS
- safari
- Second Life
- SEO
- Sleipnir
- tips
- tumblr
- webサービス
- webデザイン
- web制作
- xhtml
- XSS
- Yahoo
- はてな
- アイデア
- アクセス解析
- アニメ
- ウィジェット
- ウィルス
- ゲーム
- サーバー
- セキュリティ
- チャット
- ツール
- デザイン
- ニコニコ動画
- ネタ
- バグ
- フリーソフト
- プラグイン
- メディア
- ユーザビリティ
- リニューアル
- 仕事
- 便利
- 写真共有サイト
- 印刷
- 広告
- 携帯電話
- 映画
- 椎名林檎
- 検索
- 私生活
- 考える
- 考え方
- 裏技
- 解決法
- 設計
- 雑記
- 電気グルーヴ


![Wildflower & Cover Songs;Complete Best 'TRACK 3'(初回限定盤) - Superfly [CD]](/images/2010/wildflower.jpg)
![ソラニン [DVD]](/images/2010/soranin.jpg)
![アリス・イン・ワンダーランド [DVD]](/images/2010/alice.jpg)