2013-03-21 4 views
4

웹 페이지에서 불투명도를 설정할 때 정말 문제가 발생했습니다. 불투명도가있는 요소는 페이지의 다른 요소를 가릴 수 있습니다. 이는 Safari, Chrome 및 Firefox에서 발생합니다. 불투명도는 IE7 &에서 무시됩니다. 8. IE9에서 테스트하지 않았습니다.가능한 불투명도 Z- 색인 버그

Fiddle

<style> 
    #content { opacity: .92; background: #dfd; height: 300px;} 
    #sidebar { width: 200px; float: right; background: #fdd; height: 200px; } 
</style> 
<div id="sidebar"></div> 
<div id="content"></div> 

분리 불투명도 예상되는 동작을 복원한다. 또 다른 가능한 해결책은 불투명도 대신 rgba 배경 값을 사용하는 것입니다.

누구에게도이 문제가 발생 했습니까? 그렇다면 어떻게 수정 했습니까?

+0

가능한 중복 2837057/what-has-greater-priority-opacity-or-z-index-in-browser – Anoop

+1

'# content'는'# sidebar'보다 높은 z- 색인을 가지고 있습니다. 'overflow : hidden; '을 사용하지 않으므로,'# content'는 떠 다니는'# sidebar'와 겹칠 것입니다. – Shmiddty

+1

http://jsfiddle.net/V4MrH/1/ – Shmiddty

답변

6

#content에 설정중인 불투명도가 새로운 stacking context을 만들고 스태킹 컨텍스트가 z- 색인에 영향을줍니다. Z- 색인을 수동으로 지정하지 않았으므로 자동으로 할당되며 #content#sidebar보다 높은 값을 갖습니다.

단순한 CSS 솔루션 : position: relative; z-index: 2#sidebar에 추가하면 (또 다른 스태킹 컨텍스트를 설정하기 위해). 실제 코드에, 당신은 당신이 더 많은 요소가있는 경우 #wrapper에서 너무 #content에 Z- 인덱스를 추가해야 할 수 있습니다 : http://stackoverflow.com/questions/의

#sidebar { position: relative; z-index: 2; /* etc */ } 

http://jsfiddle.net/V4MrH/3/

+0

이것은 의도적으로 설계된 것이지만, 객체에 불투명도를 추가하는 것이 웹 페이지의 레이아웃에 영향을 미친다는 것을 반 직관적입니다. – B2K

+0

예, 완전히 반 직관적입니다. 그러나 그것이 어떻게 작동하는지 알게되면 실제로 이해가됩니다. – bfavaretto

+0

위치 : relative를 사용하여 문제를 해결했지만 운이 없었습니다. http://jsfiddle.net/WzvLU/1/ 이것은 나에게 이해가되지 않는다. – Luke