z-index가 iFrame의 PDF와 함께 IE에서 작동하지 않습니다
Internet Explorer(IE)에서 z-index를 활용하려고 합니다. PDF가 포함된 iFrame의 색인으로 인해 예기치 않은 동작이 발생할 수 있습니다. Chrome과 같은 다른 브라우저에서 원활하게 작동함에도 불구하고 IE 사용자는 어려움에 직면합니다.
이 문제를 이해하려면 IE의 "창이 있는" 요소와 "창이 없는" 요소의 개념을 자세히 살펴봐야 합니다. ActiveX 컨트롤 및 선택 드롭다운과 같은 창 요소는 브라우저의 기본 MSHTML 평면 외부에 렌더링됩니다. 대조적으로, div 및 입력 필드와 같은 창 없는 요소는 이 평면 내에서 렌더링됩니다.
창 있는 요소와 창 없는 요소 상호 작용
결정적으로, 창 있는 요소가 항상 우선합니다. Z-색인에 관계없이 창 없는 요소입니다. PDF가 포함된 iFrame에 문제가 발생하는 곳입니다. IE에서 PDF는 창 요소로 처리됩니다. 즉, 창 없는 요소의 Z 인덱스가 더 높더라도 항상 창 없는 요소 위에 표시됩니다.
해결책: 다른 iFrame을 사용한 수정
안타깝게도 이 문제를 직접적으로 해결할 수 있는 방법은 없습니다. 그러나 PDF와 페이지 콘텐츠 사이에 다른 iFrame을 도입하면 문제를 해결할 수 있습니다. 이 "커버" iFrame은 음수 Z-색인을 가지므로 보기에서 숨겨진 상태로 유지됩니다. PDF의 오버플로를 차단하면 일반적인 Z-색인 동작이 기본 페이지 콘텐츠에 적용되어 텍스트나 기타 요소가 PDF 위에 나타날 수 있습니다.
구현 세부 정보
다음 코드는 솔루션을 간략하게 설명합니다.
HTML:
<code class="html"><div id="outer"> <div id="inner">my text that should be on top</div> <iframe class="cover" src="about:blank"></iframe> </div> <iframe id="pdf" src="http://legallo1.free.fr/french/CV_JLG.pdf" width="200" height="200"></iframe></code>
CSS:
<code class="css">#outer { position: relative; left: 150px; top: 20px; width: 100px; z-index: 2; } #inner { background: red; } .cover { border: none; position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index: -1; } #pdf { position: relative; z-index: 1; }</code>
결론
음수 Z-색인이 있는 다른 iFrame을 활용하여 PDF와 페이지 콘텐츠 사이에 효과적으로 장벽을 만듭니다. 이 해결 방법을 사용하면 예상되는 Z-색인 동작을 허용하여 IE의 PDF 위에 텍스트나 기타 요소가 나타날 수 있습니다. 이 솔루션은 이상적이지는 않지만 IE의 Z-색인 문제를 해결하는 수단을 제공합니다.
위 내용은 Internet Explorer의 iFrame에서 Z-색인이 PDF와 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!