2012-08-28 31 views

回答

10

一種解決方案來包裝你.container有兩個包裝;給第一個display: table;height: 100%; width: 100%;和第二個display: table-cell;vertical-align: middle;。還要確保你的bodyhtml有全高。

這是一個小工作演示:little link

另一種方法是將top: 50%;應用於您的.containermargin-top: -150px;300px/2 = 150px)。 (請注意,此方法要求您知道容器的確切高度,因此可能不是,但它可能是!)。後一種方法的一個小工作演示:another little link

我希望有幫助!

+0

哇,謝謝!它的工作,只是好奇,是唯一的方法來做到這一點?這是最優雅的方式嗎?我正在尋找一種適用於現代瀏覽器的解決方案。所以過時的瀏覽器對我來說並不重要。 – Vennsoh

+0

@Vennsoh檢查我的更新的答案爲另一種解決方案。 – Chris

+0

謝謝!我從來不知道爲什麼身體需要身高:100%才能使其發揮作用?任何快速答案? – Vennsoh

-1

Demo

給寬度或邊距一半的頂部

現在習慣了這種CSS你itemleft 50%top 50%保證金左一半

.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

如果使用不定位比用於此http://jsfiddle.net/exmRf/16/

+0

在IE8上不起作用。 – Chris

+0

嗨Rohit,抱歉沒有讓我的問題更清楚。我想要的是將父容器垂直居中到畫布。我沒有找到方法來定位父元素內的子元素。 – Vennsoh

+1

檢查到這個http://jsfiddle.net/exmRf/16/ –