2013-01-20 16 views
5

Wyobraźmy sobie tę DOM:Z-index: uczynić elementem iść pod rodzeństwa jego rodzica

<header> 
    <h1> header </h1> 
    <!-- other elements --> 
    <nav> 
     nav 
    </nav> 
</header> 

<div> 
    content 
</div> 

Zarówno nagłówek i nav są ustawione jako fixed. Element div jest ustawiony jako relative. muszę utworzyć stos, z-index, w tej kolejności (od góry do dołu):

  • nagłówek *: not (NAV)
  • zawartość
  • nav

Mam trudności z umieszczeniem nav na dole (innymi słowy, pod rodzicielskim rodzeństwem). Myślę, że wszystkie dzieci z nagłówka muszą być na górze lub pod jego rodzeństwem ... czy to prawda? Jeśli tak, czy istnieje obejście tego problemu?

Odpowiedz

5

Tylko treść, która jest „ustawiony”, takich jak position: absolute lub position: fixed lub position: relative będzie respektować z-index. Ponieważ struktura HTML jest ustrukturyzowana, nie możesz zrobić tego, o co prosisz, ponieważ rodzic/dziecko jest również szanowany, więc dziecko musi być w rodzicu (nie może to być zupełnie inny indeks z-z vs. rodzicem) . Aby zrobić to, co chcesz, będziesz musiał zerwać nav z header, a następnie każdy z nich może mieć swój własny z-index, jeden powyżej i jeden poniżej domyślnego z-index zawartości.

+0

Miałem nadzieję, że do tego nie dojdzie, ale skończyłem, łamiąc nav z nagłówka. – dcastro

+0

** Tylko treść, która jest pozycją: bezwzględna lub pozycja: stała będzie zgodna z indeksem Z. ** To jest takie złe. A oto cytat z https://philipwalton.com/articles/what-no-one-told-you-about-z-index/ ** Po pierwsze, indeks Z działa tylko na pozycjonowanych elementach. Jeśli spróbujesz ustawić indeks Z na elemencie bez określonej pozycji, nic nie zrobi. Po drugie, wartości indeksu Z mogą tworzyć konteksty układania, a teraz nagle to, co wydawało się proste, stało się jeszcze bardziej skomplikowane. ** Tak więc "' 'position: relative''' również działa. Może inni też. – atilkan

+0

@atilkan - Dodałem 'position: relative' do mojej odpowiedzi. – jfriend00

0

Jedynym sposobem obejścia tego problemu z układem DOM jest użycie ujemnych wartości z-index. Nie zaleca się jednak stosowania wartości ujemnych, podobnie jak nie zaleca się stosowania ujemnych wartości marginesów.

Lepszym rozwiązaniem byłoby zrestrukturyzowanie DOM. Przydatne może okazać się this. Wyjaśnia zalecane sposoby korzystania z właściwości z-index.

Mam nadzieję, że to pomoże!

Powiązane problemy