대부분의 CSS 속성은 사용하기 쉽습니다. 마크업 언어 요소에 CSS 속성을 사용하면 페이지를 새로 고치는 즉시 결과가 나타나는 경우가 많습니다. 다른 CSS 속성은 더 복잡하며 특정 상황에서만 작동합니다.
Z-index 속성은 위에서 언급한 후자 그룹에 속합니다. Z-지수는 의심할 여지 없이 다른 어떤 속성보다 혼란(호환성)과 좌절(개발자 심리)을 더 자주 유발합니다. 그러나 재미있는 점은 일단 Z-index를 실제로 이해하고 나면 이것이 사용하기 매우 쉬운 속성이며 많은 레이아웃 문제를 해결하는 데 강력한 도움을 제공할 것이라는 사실을 알게 될 것입니다.
이 글에서는 Z-index가 무엇인지, 왜 그렇게 알려지지 않았는지 정확히 설명하고 실제 사용에 관한 몇 가지 문제에 대해 논의하겠습니다. 또한 브라우저 간 차이점과 기존 IE 및 Firefox 버전에 존재하는 고유한 문제에 대해서도 설명합니다. Z-색인 속성에 대한 이러한 포괄적인 관점은 개발자에게 Z-색인 속성을 사용할 때 자신감과 강력한 도움을 줄 수 있는 좋은 기반을 제공합니다.
이게 뭐야?
Z-index 속성은 HTML 요소의 계단식 수준을 결정합니다. 요소의 스택 수준은 Z축(X축 또는 Y축과 반대)의 요소 위치를 기준으로 합니다. Z-인덱스 값이 높을수록 요소가 스택 순서에서 맨 위에 더 가까워진다는 의미입니다. 이 레이어링 순서는 수직 스레드 축을 따라 표시됩니다.
Z-index의 작동 방식을 더 명확하게 설명하기 위해 위 이미지는 쌓인 요소의 시각적 위치 관계를 과장합니다.
자연스러운 스택 순서
HTML 페이지에서 자연스러운 스택 순서(즉, Z축의 요소 순서)는 여러 요인에 의해 결정됩니다. 다음은 스택 컨텍스트의 목록 항목을 표시하는 목록입니다(아직 적절한 중국어 번역이 발견되지 않았으므로 스택 요소가 위치한 스택 환경을 참조해야 함). 환경의 바닥. 이 목록의 항목 중 Z-색인 속성이 할당되지 않았습니다.
요소의 배경과 테두리는 스태킹 컨텍스트를 생성합니다
인용:
·음수 값을 갖는 스태킹 컨텍스트 요소는 나타나는 순서대로 배열됩니다(레이어가 늦게 나올수록 높음)
·아니요 positioning, nofloating 블록레벨 요소는 나타나는 순서대로 배열
·Unpositioned,floating 요소는 나타나는 순서대로 배열
·인라인 요소는 나타나는 순서대로 배열
·Posed 요소는 나타나는 순서대로 배열 모양 Z-색인 속성을 올바르게 사용하면 자연스러운 스택 순서가 변경됩니다.
물론, 요소들이 서로 겹치도록 배치되지 않은 이상, 요소들의 쌓인 순서는 특별히 눈에 띄지 않습니다. 아래에는 자연스러운 스택 순서를 설명하기 위해 음수 여백이 있는 BOX가 표시되어 있습니다.
왜 혼란을 야기하나요? Z-index는 이해하기 어려운 속성은 아니지만 잘못된 가정으로 인해 많은 후배 개발자들이 혼란을 겪을 수 있습니다. Z-색인은 명시적으로 정의된 절대, 고정 또는 상대 위치 속성이 있는 요소에서만 작동하기 때문에 혼동이 발생합니다.
Z-index가 위치 지정 요소에서만 작동할 수 있음을 증명하기 위해 여기에 Z-index 속성이 적용된 동일한 3개의 BOX가 있어 자연스러운 스택 순서를 깨려고 합니다.
다음은 동일한 3개의 BOX이며, 각각 위치는 상대 위치로 설정되어 있으며 해당 Z-지수 값은 여전히 위와 같이 설정되어 있습니다.
이제 결과는 우리가 예상한 것과 같습니다. 이러한 요소의 쌓인 순서가 반대입니다. 회색 BOX는 파란색으로 덮여 있고 파란색은 금색으로 덮여 있습니다.
Syntax
#grey_box {
너비: 200px;
테두리: 단색 1px #ccc;
위치: 상대;
# blue_box { 너비: 200px; 테두리: 단색 1px #4a7497;
배경: #8daac3;
위치: 상대;
#gold_box {
너비: 200px
높이: 200px;
테두리: 단색 1px #8b6125;
배경: #ba945d;
위치: 상대;
}
반복, Z-index 속성은 위치 속성이 있는 요소입니다. 이것은 특히 초보자들에게는 충분히 심각하게 받아들여지지 않는 것입니다.
JavaScript 사용
JavaScript를 통해 요소에 Z-index 속성을 동적으로 추가하려는 경우 구문은 액세스할 수 있는 대부분의 다른 CSS 요소의 구문과 유사합니다. 즉, "카멜 케이스"를 사용합니다. 아래 코드에 표시된 대로 의 CSS 속성 하이픈을 대체합니다.
var myElement = document.getElementById("gold_box");
myElement.style.position = "relative";
myElement.style.zIndex = "9999";
IE 및 Firefox에서 부적절한 구문 분석(호환성 문제) In 일부 특정 경우에는 IE6, IE7 및 Firefox2 버전의 Z-색인 속성 구문 분석에 약간의 불일치가 있을 수 있습니다. IE의
드롭다운 메뉴가 실패합니다. 한 가지 해결책은
JavaScript를 사용하여 임시로
IE6/IE7의 위치 지정된 상위 컨테이너:
상위 컨테이너(요소)가 위치 지정되었기 때문에 IE6/7은 스택 컨텍스트를 잘못 재설정합니다. 이 다소 복잡한 버그를 설명하기 위해 다시 한 번 두 개의 BOX를 배치하지만 이번에는 첫 번째 BOX를 위치 지정된 요소 안에 배치합니다. 회색 BOX의 Z-인덱스 값은 "9999"이고, 파란색 BOX의 Z-인덱스 값은 모두 "1"로 설정되어 있습니다. 따라서 회색 BOX가 파란색 BOX 위에 겹쳐지는 것이 올바른 실행이 되어야 합니다. 다음은 위 스크린샷의 HTML 버전입니다. (현재 블로그의 한계로 Smashing Magazine과 같은 콘텐츠 부분에는 코드 데모를 표시할 수 없습니다. 원본 예제를 보시려면 , 원본 기사로 이동하여 확인하세요), Firefox 3 또는 현재 사용 중인 다른 브라우저에서 보는 경우 정상적인 구문 분석 결과를 볼 수 있습니다: 회색 BOX의 배경(요소 스태킹 컨텍스트의 기반) 모든 개체 아래에 나타나며, 회색 BOX 안의 텍스트가 파란색 BOX 위에 나타납니다. 일반 응용 프로그램 데모 CSS Bubble: Light Box에 표시된 대로 CSS 기반 프롬프트 버블을 구현하는 데 사용할 수도 있습니다. z-index 속성을 적용하는 것이 아니었기 때문에 JQuery용 플러그인인 FancyBox와 같이 무료로 사용할 수 있는 고품질 Light Box 스크립트가 그리 많지 않았을 것입니다. 라이트 박스 스크립트는 반투명 PNG 이미지를 사용하여 배경을 어둡게 한 다음 종종 창과 같은 p를 사용하는 새 요소를 가져와 앞줄에 배치합니다. 화면을 덮는 PNG와 뒤따르는 p는 모두 Z-index 속성을 사용하여 이 두 요소가 페이지의 다른 요소 위에 배치되도록 합니다. 드롭다운 메뉴: 갤러리 효과의 사진 표시: JQuery 애니메이션과 Z-index를 결합하여 슬라이드쇼 또는 갤러리 스타일의 뛰어난 효과를 만듭니다. usejquery.com 웹사이트에 있는 이 데모는 두 가지의 놀라운 조합이 우리에게 가져다주는 놀라움을 보여줍니다. Polaroid Photo Gallery by Chris Spooner In Fancy Thumbnail Hover Effect Stu Nicholls의 CSS 실험: Stu Nicholls는 자신의 웹사이트 CSSplay에서 수많은 CSS 예제를 설명합니다. 다음은 z-index 속성에 대한 일부 작업입니다. CSS 이미지 맵
CSS 게임
CSS 모방 프레임워크
향상된 버전 계단식 레이아웃 : Bizarre Web Pick Bar: 완벽한 전체 페이지 배경 이미지: 요약
그러나 IE6과 IE7에서는 회색 상자 위에 파란색 상자가 표시됩니다. 이는 회색 BOX의 외부 상위 컨테이너 위치도 설정되어 있기 때문에 발생합니다. 두 브라우저 모두 위치가 지정된 상위 컨테이너의 스택 컨텍스트를 실수로 "재설정"했지만, 그런 경우는 발생하지 않습니다. 회색 BOX는 Z-index 값이 매우 높으며 파란색 BOX 위에 있어야 합니다. 다른 브라우저에서는 이 문제가 올바르게 해결됩니다.
Firefox 2의 음수 값:
Firefox 2 버전에서 음수 Z-index 값은 요소가 배경 및 테두리와 같이 인식된 스태킹 컨텍스트 앞이 아닌 스태킹 컨텍스트 뒤에 있게 됩니다. . 아래 스크린샷은 Firefox 2 버그를 보여줍니다.
페이지의 요소에 Z-색인 속성을 적용하면 다양한 레이아웃 문제를 쉽게 해결할 수 있으며 디자이너는 디자인에 계단식 항목을 사용할 수 있습니다.
엇갈린 미닫이문 메뉴:
이 CSS 속성의 실제 적용 사례: CTCOnlineCME 이 웹사이트는 Z-index 속성을 사용하고 "클릭 중" 탭에 대한 명확한 엇갈린 PNG 이미지를 사용하여 매우 좋은 효과를 만듭니다.
Z-index 속성은 아래 trentrichardson.com
Brainjar의 클래식 메뉴 모음의 복수와 유사한 드롭다운 메뉴는 Z-인덱스를 사용하여 메뉴 버튼과 드롭다운 항목이 계단식 상단에 위치하도록 합니다.
24가지 방법 이 웹사이트는 Z-색인입니다. 도구의 템플릿 경험을 향상시키기 위해 연도와 날짜의 길이와 너비가 웹 사이트의 외부 컨테이너와 동일하도록 확장되고 서로 얽혀 매우 흥미로운 효과를 만들어냅니다.
Janko At Warp Speed 이 웹사이트는 "Bizarre Web Pick Bar"에서 Z-index를 사용합니다.
Chris Coyier가 이 기술을 설명하고 이를 ringvemedia.com에서 구현했습니다. 콘텐츠 컨테이너에 Z-색인을 적용하여 "배경"처럼 보이지만 그렇지 않은 이미지에 표시되도록 합니다.
CSS의 계단식 관계는 복잡한 주제입니다. 이 기사에서는 이 주제의 모든 세부 사항을 논의할 의도는 아니지만 Z-색인이 웹 페이지의 스택 순서에 어떤 영향을 미치는지에 대해 심층적으로 논의합니다. 여기서 말하는 내용을 완전히 이해하면 이 CSS 속성이 매우 강력하다는 것을 알게 될 것입니다.
초보자는 이제 이 속성을 매우 잘 이해하고 사용 시 자주 발생하는 많은 문제를 피해야 합니다. 또한 숙련된 개발자는 Z-색인을 올바르게 사용하여 많은 레이아웃 문제를 피하고 더 많은 CSS 예술 작품을 만드는 방법에 대해 더 깊이 이해하게 됩니다.
위 내용은 CSS에서 Z-색인의 다양한 용도의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!