2012-08-28 10 views
10

Próbuję dzisiaj podstawowych CSS i natknąłem się na problem. Mam nadzieję, że ktoś mógłby mi w tym pomóc.Jak wyśrodkować w pionie pozycję: element względny

Jak wyrównać w pionie kontener macierzysty na płótno, które ma pozycję: względem niego? Kontener nadrzędny ma element potomny z pozycją: absolutną. Element potomny został umieszczony na środku pojemnika nadrzędnego.

Stworzyłem dla tego JSFiddle. http://jsfiddle.net/exmRf/

Pozdrawiam, Venna.

Odpowiedz

10

Jednym z rozwiązań jest owinąć .container z dwóch opakowań; podaj pierwszy: display: table; i oraz drugi display: table-cell; i vertical-align: middle;. Upewnij się także, że twoje body i html mają pełną wysokość.

Oto mała wersja demonstracyjna: little link.

Inną metodą jest zastosowanie top: 50%; do swoich .container i margin-top: -150px; (300px/2 = 150px). (Zauważ, że ta metoda wymaga znajomości dokładnej wysokości twojego kontenera, aby nie być dokładnie tym, czego potrzebujesz, ale równie dobrze może być!). Nieco działające demo tej ostatniej metody: another little link.

Mam nadzieję, że pomogło!

+0

Wow, dzięki! To działa, tylko ciekawy, czy to jedyny sposób, aby to zrobić? Czy to jest najbardziej elegancki sposób? Szukam rozwiązania, które działa w nowoczesnych przeglądarkach. Więc przestarzałe przeglądarki nie mają dla mnie znaczenia. – Vennsoh

+0

@Vennsoh Sprawdź zaktualizowaną odpowiedź na inne rozwiązanie. – Chris

+0

Dzięki! Nigdy nie wiedziałem, dlaczego ciało musi mieć wzrost: 100%, żeby to zadziałało?Jakieś szybkie odpowiedzi? – Vennsoh

-1

Demo

Daj swojej itemleft 50% i top 50% i margin-left połowie szerokości lub margin-top połowie górnej

obecnie wykorzystywana do tego css

.container{ 
    position: relative; 
    width: 300px; 
    height: 300px; 
    background-color: red; 
    margin:auto; 
} 

.item{ 
    position: absolute; 
    width: 100px; 
    height: 100px; 
    background-color: blue; 
    left:50%; 
    top:50%; 
    margin-left:-50px; 
    margin-top:-50px; 
} 

Demo

jeśli użyto nie ustawiaj niż stosowane do tej http://jsfiddle.net/exmRf/16/

+0

Nie działa na IE8. – Chris

+0

Cześć Rohit, przepraszam, że nie poprawiłem mojego pytania. Potrzebuję pionowego wycentrowania kontenera nadrzędnego na obszar roboczy. Nie szukam sposobów pozycjonowania elementu potomnego w elemencie nadrzędnym. – Vennsoh

+1

Sprawdź na http://jsfiddle.net/exmRf/16/ –

Powiązane problemy