2009-04-17 1 views
1

私はこのように、負のマージンを介して親outisde位置決め要素を有する:Internet Explorer 6で親の外側にある要素を負のマージンでクリッピングするのを止めるにはどうしたらいいですか?

<style> 
.parent { 
    height: 1%; 
} 

.element { 
    float: left; 
    margin-left: -4px; 
} 
</style> 

... 

<div class="parent"> 
    <div class="element">Element</div> 
</div> 

、親要素の外側に位置.elementの一部は、切断、隠し、すなわち不可視クリップされます。これをどうやって解決するのですか?このような.element

答えて

5

割り当てposition: relative;、:親要素hasLayout(ワームの大きすぎる缶でここに入るために)場合にのみ必要です

<style> 
.parent { 
    height: 1%; 
} 

.element { 
    float: left; 
    margin-left: -4px; 
    position: relative; /* Fixes clipping issue in IE 6 */ 
} 
</style> 

... 

<div class="parent"> 
    <div class="element">Element</div> 
</div> 

+1

私は日のために、この問題で苦労してきた素晴らしいです!最終的に動作する修正を得ました:) – Alex

+1

面白いです。私はこれまで数回この問題を抱えていましたが、CSSのさまざまな変更を無駄に試すのに何時間も費やしました。これはトリックを行うようだ。 – jwal

+0

@jwal:優秀、喜んで助けました。 –

1
<style> 
.parent { 
    height: 1%; 
    overflow: auto; 
    _zoom: 1; /*ie6 hack forces has layout*/ 
} 

.element { 
    float: left; 
    margin-left: -4px; 
} 
</style> 
+0

これは問題を解決していないようです。とにかく 'height:1%'は '.parent'にhasLayoutを強制するべきだと私は思う。 'zoom:1'も必要ないはずです。 –

0

これは、IE6で浮動小数点数と組み合わせた負のマージンで発生します。

あなたは、フロートを取り除くことができる場合:

 
.element { 
    float: none: 
    zoom: 1; 
} 
関連する問題