CSS에서 변환 속성을 사용하면 새로운 "스태킹 컨텍스트"를 생성할 수 있습니다. " 요소에 대해. 이는 요소와 해당 하위 요소가 렌더링 프로세스에서 별도의 레이어를 형성한다는 것을 의미합니다. 또한 기본값이 아닌 z-index 값을 가진 요소는 자체 스택 컨텍스트도 생성합니다.
제공된 코드에서 .test 요소에는 변환: 회전(10deg);이 있습니다. 스태킹 컨텍스트를 생성합니다. 그런 다음 .test:after 의사 요소에 z-index: -1이 할당됩니다. 그러나 이는 .test 뒤에 위치하지 않습니다.
Z-index는 스태킹 컨텍스트 내에서 작동합니다. .test에 -webkit-transform을 설정하면 요소와 그 하위 요소에 대한 새로운 스태킹 컨텍스트가 생성됩니다. 결과적으로 .test:after의 z-index: -1은 .test 스태킹 컨텍스트 내 위치에만 영향을 미칩니다.
이 문제를 해결하려면 .test와 .test:동일한 스태킹 컨텍스트를 공유한 후입니다. 이를 달성하는 한 가지 방법은 .test를 포장 컨테이너에 배치하고 대신 컨테이너를 회전시키는 것입니다.
업데이트된 코드는 다음과 같습니다.
.wrapper { -webkit-transform: rotate(10deg); } .test { width: 150px; height: 40px; margin: 30px; line-height: 40px; position: relative; background: white; } .test:after { width: 100px; height: 35px; content: ""; position: absolute; top: 0; right: 2px; -webkit-box-shadow: 0 5px 5px #999; -webkit-transform: rotate(3deg); transform: rotate(3deg); z-index: -1; } <div class="wrapper"> <div class="test">z-index is canceled.</div> </div>
이 예에서는 , 변환 회전은 .wrapper 컨테이너에 적용되어 .test 및 .test:after 모두에 대한 단일 스택 컨텍스트를 생성합니다. 이를 통해 .test:after의 z-index: -1이 예상대로 적용됩니다.
위 내용은 `transform:rotate()`가 `z-index`를 취소하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!