2011-04-14 8 views
1

나는 테스트 케이스가 here입니다.Internet Explorer 7의 z- 인덱스 문제

내가 달성하고자하는 것은 녹색 하위 요소가있는 파란색 상위 요소가 종이 클립과 같은 빨간색 요소를 둘러싸고 있다는 것입니다. 모든 현대의 브라우저에서 볼 수 있듯이 이것은 잘 작동하지만 IE7에서는 녹색 요소가 배경에 그대로 있습니다.

IE7에서 어떻게 해결할 수 있을까요?

편집 : 녹색 요소가 파란색 요소의 자식 요소로 유지되는 것이 필수적입니다. 파란색 요소가 애니메이션되고 녹색 요소의 너비와 위치에 영향을주기 때문입니다.

+0

IE7과 IE8에서 동일하게 보입니다. IE9 *를 "현대적인 버전"IE 브라우저로 계산 하시겠습니까? 편집 : 사실, 불투명도 이외의 IE7에서 Firefox/Chrome과 동일하게 보입니다. – thirtydot

+0

실제로 그것은 IE8 (IE9는 없다), Firefox 4/Chrome/Opera 11 -> 블루 느릅 나무가 빨간색 느릅 나무 뒤에 있고 녹색 느릅 나무가 위에 있습니다. IE8의 호환성 모드를 사용하여 IE7 렌더링 동작을 에뮬레이트합니다. – Ralf

+0

* 전에 테스트 케이스가 변경 되었기 때문에 테스트 케이스가 변경되었음을 확신합니다. IE에는 투명성이 없었습니다. 글쎄, 지금 당신이 가진 문제를 볼 수 있습니다. – thirtydot

답변

0

z- 색인이 선언 된 CSS에 position:relative;을 추가하십시오. 대부분의 경우 작동합니다.

귀하의 경우에는

는이 IE7에서 작동

#middle-container { 
     width: 250px; 
     height: 300px; 
     background: red; 
     left: 100px; 
     top: 20px; 
     z-index: 2; 
     position: relative; /* added row to make z-index work */ 
     opacity: .9; 
    } 

    #container-behind { 
     width: 220px; 
     height: 110px; 
     padding-left: 70px; 
     background: blue; 
     top: 80px; 
     left: 320px; 
     z-index: 1; 
     position: relative; /* added row to make z-index work */ 
    } 
+0

CSS # 중간 컨테이너의 첫 번째 행에서 볼 수 있듯이 # container-behind는 이미 position : absolute를가집니다. 안타깝게도 요소가 더 큰 컨테이너 안에 배치되고 jQuery로 애니메이션되기 때문에 불행히도 상대방으로 변경할 수 없습니다. ( – Ralf

0

데모 : http://jsfiddle.net/dTJ4d/1

데모 2 : http://jsfiddle.net/dTJ4d/2

<div id="middle-container">  
    #middle-container 
    <div id="container-behind"> 
     #container-behind 
    </div> 
    <div id="inner-behind"> 
     #inner-behind 
    </div> 
</div> 
DIV 
{ 
    padding: 10px; 
    color: #FFFFFF; 
} 
#middle-container 
{ 
    width: 250px; 
    height: 300px; 
    background: #FF0000; 
    left: 100px; 
    top: 20px; 
} 
#container-behind 
{ 
    width: 220px; 
    height: 110px; 
    padding-left: 70px; 
    background: #0000FF; 
    top: 80px; 
    left: 70px; 
    z-index: -1; 
    position: absolute; 
} 
#inner-behind 
{ 
    width: 210px; 
    padding-left: 70px; 
    background: #80E64D; 
    position: relative; 
    z-index: 1; 
    top: 75px; 
    left: 50px; 
} 

E DIT : 몇 줄의 코드를 정리했습니다.

+0

안녕하세요 wdm, 고마워요,하지만이게 내가 필요로하는 것이 아닙니다. 방금 게시물을 편집했습니다 : 필수적으로, 녹색 요소는 파란색 요소의 자식 요소로 유지됩니다. 파란색 요소가 애니메이션되고 녹색 요소 폭 및 위치에도 영향을 미치기 때문입니다. 따라서 파란색 div의 너비 또는 위치가 녹색 divs 너비도 변경되며 파란색 요소 내에서 위치가 변경되지 않아야합니다. – Ralf