2013-01-17 10 views
9

Podczas mojej długiej podróży, aby zaktualizować moje umiejętności CSS z przestarzałego pyłu, w którym się obrobili, bawię się z pewnymi właściwościami CSS - szczególnie z-index - Zauważam coś dziwnego lub może jest pewien warunek.Pozycja bezwzględna w CSS w odniesieniu do elementu nadrzędnego Działając jako relatywna

Przykład: http://jsfiddle.net/mEpgR/

dominującym elementem Div1 jest cd, zrobiłem nieruchomość pozycja Div1 jest ustawiony na absolutny, ale kiedy go przesunąć, to porusza się względem swojego rodzica. Miałem wrażenie, że przedmioty ustawione na pozycjonowanie bezwzględne są przepływami z zewnątrz i poruszają się tylko względem portu przeglądarki jako ich nadrzędne.

Czego mi brakuje?

Jeśli skrzypce link nie działa, kod:

CSS:

.cont { 
position:relative; 
height:200px; 
top:200px; 
left:100px; 
background: green; width: 200px; 
} 

.div1 { 
background:red; 
position:absolute; 
top:50px; 
} 

HTML:

<div class="cont"> 
<div class="div1">DIV1</div> 
</div> 
+4

To jest poprawne zachowanie. 'position: absolute' umieszcza element * w stosunku do najbliższej pozycji przodka *. Aby ustawić go względem dokumentu, usuń 'position: relative' z elementu nadrzędnego lub usuń element z elementu nadrzędnego. – Blazemonger

+0

Przeczytaj ten https://developer.mozilla.org/en-US/docs/CSS/position – j08691

+0

To jest dla szybkiej odpowiedzi; zauważono zachowanie css. – brooklynsweb

Odpowiedz

32

Absolutna pozycjonowany element jest umieszczony w stosunku do pierwszego elementu nadrzędnego, który ma pozycja inna niż statyczna. Ponieważ masz go w rodzicu z relative, będzie on absolutnie umieszczony względem tego rodzica.

Być może szukasz pozycji fixed, która jest względna w stosunku do okna przeglądarki.

+2

tutaj: http://css-tricks.com/absolute-positioning-inside-relative-positioning/Jest to graficzne wyjaśnienie właśnie tego. –

Powiązane problemy