CSS
IE z-index Bug
아거스
2010. 12. 9. 01:39
CSS2.1명세에 따르면 각 박스는 3차원의 위치를 가지게 됩니다.
가로(또는 수평)와 세로(또는 수직), 그리고 Z-axis(축)입니다. 이 때, Z-axis는 CSS에서 z-index로 표현됩니다.
즉, z-index값이 높을수록 Z축의 값도 높다는 것입니다.
z-index속성에 대하여 W3C 명세서에는 아래와 같이 표기되어 있습니다.
'z-index'
z-index의 중요한 점은 position된 요소에만 적용할 수 있는것과 값으로 정수값을 가질 수 있다는 점입니다.
z-index를 다음 코드와 같이 사용할 수 있습니다.
CSS
그런데 위의 코드를 실행해보면 IE7이하 브라우저에서는 잘못된 결과가 나타나는것을 볼 수 있습니다.
즉, z-index값이 높음에도 불구하고 Z축의 값이 낮게 나오는 것이죠.
IE7이하의 브라우저에서는 position:relative인 요소가 position을 사용한 요소를 감싸게 되면 해당 요소의 z-index값을 0으로 만드는 것입니다.
이럴경우 두 가지의 해결방법이 있습니다.
1. position:relative인 감싸는 요소에 높은 z-index를 지정합니다.
2. Z축이 낮은 요소의 z-index값을 음의정수로 지정합니다.
가로(또는 수평)와 세로(또는 수직), 그리고 Z-axis(축)입니다. 이 때, Z-axis는 CSS에서 z-index로 표현됩니다.
즉, z-index값이 높을수록 Z축의 값도 높다는 것입니다.
z-index속성에 대하여 W3C 명세서에는 아래와 같이 표기되어 있습니다.
Value: | auto | <integer> | inherit |
Initial: | auto |
Applies to: | positioned elements |
Inherited: | no |
Percentages: | N/A |
Media: | visual |
Computed value: | as specified |
z-index의 중요한 점은 position된 요소에만 적용할 수 있는것과 값으로 정수값을 가질 수 있다는 점입니다.
z-index를 다음 코드와 같이 사용할 수 있습니다.
CSS
* { margin:0; padding:0; } div { padding:10px; font:12px/1.5 tahoma; color:#fff; } #container { position:relative; } #div1 { position:absolute; left:0; top:0; z-index:2; width:200px; height:200px; background:red; } #div2 { position:absolute; left:100px; top:100px; z-index:1; width:200px; height:200px; background:green; }HTML
<div id="container"> <div id="div1"> #div1 { position:absolute; <br /> left:0;<br /> top:0; <br /> z-index:2; <br /> width:200px; <br /> height:200px; <br /> background:red;<br /> } </div> </div> <div id="div2"> #div2 {<br /> position:absolute;<br /> left:100px;<br /> top:100px;<br /> z-index:1;<br /> width:300px;<br /> height:300px;<br /> background:skyblue;<br /> } </div>
그런데 위의 코드를 실행해보면 IE7이하 브라우저에서는 잘못된 결과가 나타나는것을 볼 수 있습니다.
즉, z-index값이 높음에도 불구하고 Z축의 값이 낮게 나오는 것이죠.
IE7이하의 브라우저에서는 position:relative인 요소가 position을 사용한 요소를 감싸게 되면 해당 요소의 z-index값을 0으로 만드는 것입니다.
이럴경우 두 가지의 해결방법이 있습니다.
1. position:relative인 감싸는 요소에 높은 z-index를 지정합니다.
#container { position:relative; z-index:2; }
2. Z축이 낮은 요소의 z-index값을 음의정수로 지정합니다.
#div2 { position:absolute; left:100px; top:100px; z-index:-1; width:200px; height:200px; background:green; }
참조 사이트