数日前に取り組んだプロジェクトでこのような問題が発生しました。ie6 と ie7 では、親要素の overflow:hidden の設定が機能せず、非表示にできませんでした。後で、position:relative が設定されていることがわかりました。子要素でposition:relativeを削除すると、親要素のoverflow:hiddenを非表示にすることができます:
html コード:
<!doctype html><html lang="en"><head> <meta charset="UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> <meta name="renderer" content="webkit"/> <meta name="keywords" content=""/> <meta name="description" content=""/> <title>Document</title> <style> *{margin:0;padding:0;} .w{width:480px;margin:50px auto;} .w ul{width:100%;overflow:hidden;height:144px;border:1px solid #f00;} .w li{position:relative;height:36px;width:108px;border:1px solid #d1d1d1;line-height:36px;text-align:center;float:left;display:inline;margin:0 10px 10px 0;} </style></head><body> <div class="w"> <ul> <li>111111111</li> <li>222222222</li> <li>333333333</li> <li>444444444</li> <li>555555555</li> <li>666666666</li> <li>777777777</li> <li>888888888</li> <li>999999999</li> <li>000000000</li> <li>111111111</li> <li>222222222</li> <li>333333333</li> <li>444444444</li> <li>555555555</li> <li>666666666</li> <li>777777777</li> <li>888888888</li> <li>999999999</li> <li>000000000</li> </ul> </div></body></html>
ie6 および ie7 の効果。 :
解決策:
親への要素はposition:relativeを設定します。