찾다
웹 프론트엔드CSS 튜토리얼상대절대 돌파할 수 없는 레벨 문제 해결_경험교류

LI를 position:relative;로 설정하면 SPAN의 z-index 값이 아무리 높게 설정되어도 항상 그 뒤에 있는 상위 항목 아래에 있게 됩니다.

z-index 값이 1000에 도달하면 position:absolut가 모두 부모 아래에 저장되어 자식을 쉽게 찾을 수 있습니다. 오랫동안 생각해 봤는데, 근본적인 문제는 같은 위치를 설정하는 것: 같은 레벨의 레이블 간의 레벨은 z-index로 넘을 수 없다는 것입니다. 위의 예에서 첫 번째 LI의 레벨은 항상 다음 LI의 레벨보다 작으므로 LI의 하위 항목에 position:absolute를 설정하여 매우 높은 z-index 값을 제공합니다.
<ul>   
<li>第一块</li>   
<li><span>第二块</span></li>   
<li>第三块</li>   
<li>第四块</li>   
<li>第五块</li>   
</ul>

어쩌면 이렇게 생각할 수도 있습니다. LI에 대해 position:relative를 설정하는 것이 좋지 않을까요? 매우 사실입니다. 다른 LI가 position:relative를 설정하지 않으면 필요한 하위 항목이 모든 콘텐츠 위에 떠 있을 수 있습니다. 그러나 실제로 모든 LI에 범위가 필요하고 속성이 동일해야 한다면 어떻게 될까요? 물론 이 효과가 반드시 필요한 것은 아닙니다. 그러나 우리는 그러한 효과가 필요합니다. 모든 하위 항목은 숨겨지고 마우스 반응이 있을 때 나타나며 모든 콘텐츠 위에 떠 있습니다. 위에서 본 것처럼 자식이 표시될 때 다음 부모 레이블 아래에 눌려지기 때문에 이것이 실제로 골치 아픈 일이라는 것을 알아야 합니다. 이 마우스 응답의 위치 지정 효과를 구현해 보겠습니다.

*{margin:0; padding:0; list-style:none;}   
li {width:100px; height:100px; margin:0 5px 0 0; background:#000; float:left; position:relative; z-index:1;}   
li span {width:200px; height:100px; background:#c00; position:absolute; top:0; left:100px; z-index:1000;}

연결된 마우스 이벤트를 사용하여 표시 및 숨기기 효과를 완료합니다.

a를 position :relative로 설정합니다. 이러한 방식으로 해당 하위 항목은 상위 항목의 왼쪽 위 모서리를 좌표 원점으로 기준으로 배치됩니다. 그런 다음 범위의 특정 모양과 위치 지정 속성을 설정한 다음 숨깁니다. 그런 다음 A의 의사 클래스:hover를 사용하여 범위를 활성화합니다. 결과를 보면 맨 위에 있어야 할 모든 것이 이제 맨 아래에 있음을 알 수 있습니다. 그렇다면 이 문제를 어떻게 해결해야 할까요? 실제로 CSS로 돌파구를 찾는 것은 불가능합니다. 그래서 우리는 트리거되지 않은 상위 ​​태그에 position:relative 속성이 없도록 만들 수 있는지 생각해 보겠습니다. 이 상위 항목에 해당 값을 할당하시겠습니까? 사실 이렇게 생각하면 기본적으로 모든 문제가 해결될 수 있습니다.
<ul>   
<li><a href="" title=""><span>第一块</span></a></li>   
<li><a href="" title=""><span>第二块</span></a></li>   
<li><a href="" title=""><span>第三块</span></a></li>   
<li><a href="" title=""><span>第四块</span></a></li>   
<li><a href="" title=""><span>第五块</span></a></li>   
</ul>

a:hover의 속성을 position:relative;로 설정하기만 하면 마우스가 트리거될 때만 A가 상대적으로 위치가 지정된 속성이 할당됩니다. 이로써 다른 상위 태그에 의해 차단되는 문제가 해결되었습니다.
*{margin:0; padding:0; list-style:none;}   
li {height:100px; margin:0 5px 0 0; float:left; width:100px;}   
li a {position:relative; z-index:1; display:block; height:100px; width:100px; background:#000;}   
li a:hover {background:#000000;}   
li span {display:none;}   
li a:hover span {display:block; background:#c00; width:200px; height:200px; position:absolute; top:0; left:100px; z-index:1000;}

물론 IE5와 같은 브라우저가 마음에 들지 않는다면 코드를 단순화할 수도 있습니다.

*{margin:0; padding:0; list-style:none;}   
li {height:100px; margin:0 5px 0 0; float:left; width:100px;}   
li a {display:block; height:100px; width:100px; background:#000;}   
li a:hover {position:relative; z-index:1; }   
li span {display:none;}   
li a:hover span {display:block; width:200px; height:200px; background:#c00; position:absolute; top:0; left:100px; z-index:1000; }

CSS를 다음과 같이 변경할 수 있습니다.

추가:
<ul>   
<li><span>第一块</span></li>   
<li><span>第二块</span></li>   
<li><span>第三块</span></li>   
<li><span>第四块</span></li>   
<li><span>第五块</span></li>   
</ul>
얼마 전 '위치:상대/절대 돌파 불가'라는 기사가 나온 적이 있는데, 며칠 전에 다시 읽어보니 그 기사가 아니더군요. 철저하고 핵심을 지적하지 않았습니다. 따라서 위치에 있는 레벨을 좀 더 명확하고 명확하게 설명할 수 있기를 바라며 여기에 특별한 보충 자료를 작성하고 싶습니다.

우리 모두는 위치에 4가지 다른 값이 있다는 것을 알고 있습니다. 즉, 정적 절대 | 상대값입니다. 이는 Su Yu의 "CSS2 중국어 매뉴얼"에 설명되어 있습니다. 정적: 특별한 위치 지정이 없으며 개체는 HTML 위치 지정 규칙을 따릅니다. 절대: 문서 흐름에서 개체를 드래그하고 왼쪽, 오른쪽, 위쪽, 아래쪽 및 기타 속성을 사용하여 절대값으로 만듭니다. 위치. 그리고 계단식은 z-index 속성을 통해 정의됩니다. 이때 개체에는 여백이 없지만 여전히 패딩과 테두리가 있습니다. 개체는 쌓일 수 없지만 왼쪽, 오른쪽, 위쪽, 아래쪽 등과 같은 속성을 기반으로 일반 문서 흐름에서 오프셋됩니다. .; 수정됨: IE5.5 및 NS6은 아직 사용할 수 없습니다. 이 속성은 지원되지 않습니다.
*{margin:0; padding:0; list-style:none;}   
li {height:100px; margin:0 5px 0 0; float:left; width:100px; background:#000;}   
li:hover {position:relative; z-index:1;}   
li span {display:none;}   
li:hover span {display:block; width:200px; height:200px; background:#c00; position:absolute; top:0; left:100px; z-index:1000; }

그러나 객체의 스택 위치를 변경하려면 또 다른 CSS 속성인 z-index가 필요합니다. 그러나 이 Z-색인은 전능하지 않습니다. HTML 코드 수준에 의해 제한됩니다. Z-index는 동일한 레벨의 HTML에만 그 효과를 반영할 수 있습니다. 여기서 꼭 언급해야 할 점은 z-index는 객체의 위치 값이 상대/절대일 때만 사용할 수 있다는 것입니다. 아래에서는 레벨의 특성을 설명하는 몇 가지 예를 제공합니다.


위 HTML 코드의 경우 이를 정의하기 위해 CSS도 작성해야 합니다.

이는 다음과 같습니다. 가장 일반적인 경우는 #a, #b의 stacking level을 z-index를 통해 설정할 수 있다. 이것은 묻지 않는데 어떤 상황에서 문제가 발생합니까? 또 다른 예를 살펴보겠습니다.
<p id="box_1">   
<p id="a">这是第一个块</p>   
<p id="b">这是第二个块</p>   
</p>

이 CSS의 차이점에 주의하세요.
#a,#b {position:absolute; width:300px; height:100px; }   
#a {z-index:10; left:0; top:0; background:#000; }   
#b {z-index:1; left:20px; top:20px; background:#c00; }
#box_1, #box_2 {position:relative; width:300px; height:100px; margin:10px; background:#ddd;}   
#a, #b {position:absolute; width:100px; height:300px; }   
#a {background:#c00; z-index:100; }   
#b {background:#0c0; z-index:1; left:50px;}

       这时候我们看,不论#a设为多大的值,他都无法超过#b,所以说z-index是无法冲破HTML的等级的,他必需是要同等级的状态下才可以发挥威力.那么如何解决这个问题呢?我可以反过来想,堂兄弟之间的顺序不能被重组,何不把父辈的等级做一次重组呢?所以我们把#box_1的CSS中加入一个z-index:100; 在#box_2的CSS中加入z-index:1;这样再看一下效果: 

#box_1, #box_2 {position:relative; width:300px; height:100px; margin:10px; background:#ddd;}   
#box_1 {z-index:100;}   
#box_2 {z-index:1;}   
#a, #b {position:absolute; width:100px; height:300px; }   
#a {background:#c00; }   
#b {background:#0c0; left:50px;}
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
커서를위한 다음 레벨 CSS 스타일커서를위한 다음 레벨 CSS 스타일Apr 23, 2025 am 11:04 AM

CSS가있는 커스텀 커서는 훌륭하지만 JavaScript를 사용하여 다음 단계로 가져갈 수 있습니다. JavaScript를 사용하면 커서 상태를 전환하고 커서 내에 동적 텍스트를 배치하고 복잡한 애니메이션을 적용하며 필터를 적용 할 수 있습니다.

Worlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionWorlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionApr 23, 2025 am 10:42 AM

2025 년에 서로를 ricocheting하는 요소가있는 대화식 CSS 애니메이션은 CSS에서 Pong을 구현할 필요가 없지만 CSS의 유연성과 힘이 증가하는 것은 LEE의 의심을 강화합니다.

UI 효과를 위해 CSS 배경 필터 사용UI 효과를 위해 CSS 배경 필터 사용Apr 23, 2025 am 10:20 AM

CSS 배경 필터 속성을 사용하여 사용자 인터페이스 스타일에 대한 팁과 요령. 여러 요소들 사이에 필터를 배경으로 배경으로 배경으로하는 방법을 배우고 다른 CSS 그래픽 효과와 통합하여 정교한 디자인을 만듭니다.

미소?미소?Apr 23, 2025 am 09:57 AM

글쎄, SVG '의 내장 애니메이션 기능은 계획대로 이상 사용되지 않았다. 물론 CSS와 JavaScript는 부하를 운반 할 수있는 것 이상이지만 Smil이 이전과 같이 물에서 죽지 않았다는 것을 아는 것이 좋습니다.

'예쁜'은 보는 사람의 눈에 있습니다'예쁜'은 보는 사람의 눈에 있습니다Apr 23, 2025 am 09:40 AM

예, 텍스트-랩을위한 점프 : Safari Technology Preview의 예쁜 착륙! 그러나 Chromium 브라우저에서 작동하는 방식과는 다른 점을 조심하십시오.

CSS- 트릭 연대기 XLIIICSS- 트릭 연대기 XLIIIApr 23, 2025 am 09:35 AM

이 CSS- 트릭 업데이트는 Almanac, 최근 Podcast 출연, 새로운 CSS 카운터 가이드 및 귀중한 컨텐츠에 기여하는 몇 가지 새로운 저자의 추가 진전을 강조합니다.

Tailwind ' s @apply 기능은 소리보다 낫습니다Tailwind ' s @apply 기능은 소리보다 낫습니다Apr 23, 2025 am 09:23 AM

대부분의 경우 사람들은 Tailwind ' S 단일 프로퍼 유틸리티 중 하나 (단일 CSS 선언을 변경)와 함께 Tailwind ' s @apply 기능을 보여줍니다. 이런 식으로 선보일 때 @apply는 전혀 약속하는 소리가 들리지 않습니다. 그래서 Obvio

릴리스가없는 느낌 : 제정신 배치를 향한 여정릴리스가없는 느낌 : 제정신 배치를 향한 여정Apr 23, 2025 am 09:19 AM

바보처럼 배포하는 것은 배포하는 데 사용하는 도구와 복잡성에 대한 보상과 복잡성이 추가됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!