[CSS 디자인] 깨지기 어려운 z-index를 지정하는 것에 대해 생각합니다.
요약
각 구성 요소에 대해 지정할
z-index
값을 정의합니다.동기 부여
z-index
충돌을 피하고 싶다 z-index
z-index
전제 조건
Z-색인 규칙
z-index
가급적 사용하지 마세요. z-index
에서 0
까지 4
를 사용합니다. -1
와 같은 음수를 사용하지 마십시오. 레이어 스택 규칙
z-index
을 정의합니다. z-index
값을 늘립니다. 레이어 스택 4: z-인덱스: 4 .
모든 상태에서 맨 위에 배치할 요소입니다.
레이어 스택 3: z-인덱스: 3
항상 맨 위에 배치되는 요소입니다.
항상 맨 위에 배치되는 요소입니다.
레이어 스택 2: z-인덱스: 2 .
레이어 스택 1: z-인덱스: 1 .
스택이 없는 요소 위에 배치됩니다.
z-index 를 정의합니다.
:root {
--layer-stack-1: 1;
--layer-stack-2: 2;
--layer-stack-3: 3;
--layer-stack-4: 4;
}
.modal {
z-index: var(--layer-stack-4);
}
.modal-in-modal {
z-index: calc(var(--layer-stack-4) + 1);
}
격리 규칙
z-index
가 레이어 스택 정의에서만 구성 요소 간에 충돌하여 의도하지 않은 겹침이 발생할 수 있습니다. 이러한 경우 isolation
를 사용하여 구성 요소의 루트에 쌓임 컨텍스트를 생성하여 문제를 해결할 수 있습니다..special-components {
isolation: isolate; /* generate stacking context */
position: absolute;
}
.special-components__item {
position: absolute;
z-index: 100;
}
.modal {
position: absolute;
z-index: var(--layer-stack-4);
}
기본적으로
z-index
명세만으로 문제가 없는 HTML 구조를 사용하는 것이 바람직하지만 z-index: calc(var(--layer-stack-2) + 1);
등의 명세를 사용할 경우 다른 컴포넌트와 의도치 않게 중복될 가능성이 높다. 하위 요소에 isolation
사양이 있는 구성 요소의 루트에 대해 z-index
를 지정하는 것이 좋습니다.덧붙여서,
isolation
가 출현하기 전에 부작용 없이 transform
를 지정하여 스태킹 컨텍스트를 생성하는 해킹이 있었습니다(예: transform: scale(1)
).요약
z-index
를 지정합니다. isolation: isolate
를 지정합니다.
Reference
이 문제에 관하여([CSS 디자인] 깨지기 어려운 z-index를 지정하는 것에 대해 생각합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hiro0218/css-design-i-think-about-specifying-z-index-difficult-to-break-1koi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)