IE6でoverflow:hiddenを使ったときに、うまくhiddenにならない
IE6 で、divタグにoverflow:hiddenを指定したにもかかわらず、中身がhiddenにならない場合がある。
<div id="soto"> <div id="naka"> <img src="hoppi.png" height="200" width="200"/> </div> </div>
といった感じのHTMLがあり、cssで、
#naka { width:100px; height:100px; text-align:center; position:relative; } #soto { width:80px; height:90px; overflow:hidden; float:left; background:#fff; }
という感じでスタイルを指定したときに、iE6では、sotoで指定したoverflow: hiddenが効かないというバグがある。
これは、どのような現象で発生するかというと、中のタグ、今回ではnakaのタグでposition: relative;を指定してる場合に
外側のタグ、今回ではsotoにposition: relative; が無い場合である。
解決する方法としては、外側のタグ(soto)にもposition:relative; を付けることで、overflow:hidden; が適用されるようになる。
という感じで、記事検証用にちょっとサンプル作ってみたが、何故かhiddenがちゃんと適用されてしまう。
ま、実際他のところでは出てて、直したので記事を書いているのだが、サンプルで再現しないのはなぜだ。。他にもhiddenにならない要素があるのかもしれない。
今後の調査課題。