Mam div
z domyślnym pozycjonowania (tj position:static
) oraz div
z fixed
pozycji.
Jeśli ustawię indeksy Z elementów, wydaje się niemożliwe, aby stały element poszedł za elementem statycznym.
#over {
width: 600px;
z-index: 10;
}
#under {
position: fixed;
top: 5px;
width: 420px;
left: 20px;
border: 1px solid;
height: 10%;
background: #fff;
z-index: 1;
}
<!DOCTYPE html>
<html>
<body>
<div id="over">
Hello Hello HelloHelloHelloHelloHello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello
</div>
<div id="under">
</div>
</body>
</html>
Lub na jsfiddle tutaj: http://jsfiddle.net/mhFxf/
Mogę obejść ten problem, używając
position:absolute
elementu statycznego, ale czy ktoś może mi powiedzieć, dlaczego tak się dzieje?
(Wydaje się, że jest podobne pytanie do tego ( Naprawiono pozycjonowanie łamiące indeks Z ), ale nie ma zadowalającej odpowiedzi, dlatego pytam o to tutaj z moim przykładowym kodem)
Dodaj
position: relative;
do #overSkrzypce
źródło
</body>
i dodatkowy tag</html>
.position: relative
z elementu ponad naprawiło mój problem.z-index działa tylko w obrębie danego IE kontekstowego
relative
,fixed
lubabsolute
pozycji.indeks z dla względnego div nie ma nic wspólnego z
z-index
absolutnym lub stałym div.EDYCJA
To jest niepełna odpowiedź.Ta odpowiedź zawiera fałszywe informacje. Przeczytaj komentarz i przykład @ Dansingermana poniżej.źródło
ponieważ twój
over
div nie ma pozycjonowania, indeks Z nie wie, gdzie i jak go pozycjonować (iw odniesieniu do czego?). Po prostu zmień pozycję nad divem na względną, aby nie było żadnych skutków ubocznych na tej div, a wtedy pod-div będzie posłuszny twojej woli.oto twój przykład na jsfiddle: Fiddle
edytuj : Widzę, że ktoś już wspomniał o tej odpowiedzi!
źródło
Daj
#under
negatywz-index
, np-1
Dzieje się tak, ponieważ
z-index
właściwość jest ignorowanaposition: static;
, co jest wartością domyślną; więc w kodzie CSS, który napisałeś,z-index
jest1
dla obu elementów bez względu na to, jak wysoko go ustawiłeś#over
.Podając
#under
wartość ujemną, będzie za każdymz-index: 1;
elementem, tj#over
.źródło
Budowałem menu nawigacyjne. Mam
overflow: hidden
w css mojej nawigacji, który ukrył wszystko. Myślałem, że to problem ze wskaźnikiem Z, ale tak naprawdę ukrywałem wszystko poza moją nawigacją.źródło
zgodnie z sekcją Nakładające się elementy na http://web.archive.org/web/20130501103219/http://w3schools.com/css/css_positioning.asp
źródło
zachowanie stałych elementów (i elementów bezwzględnych) zgodnie z definicją w specyfikacji CSS:
To sprawia, że obliczenia zindex są nieco skomplikowane, rozwiązałem swój problem (ta sama sytuacja), dynamicznie tworząc kontener w elemencie ciała i przenosząc wszystkie takie elementy (które są klasyfikowane jako „moje stałe” wewnątrz tego elementu na poziomie ciała )
źródło