2013-10-30 70 views
2

我有一個文本和圖像裏面的div,它是190px x 190px,我希望一切都垂直居中。我怎樣才能在父div的數據中心?

我試過在SO和Google上尋找,似乎找不到一個簡單的答案來這樣做。

這樣做最簡單的方法是什麼?

Fiddle

HTML:

<div class="block"> 
    <h2>TITLE</h2><br/> 
     <img src="...." width="190px"/> 
     <p>Hello world</p> 
</div> 

CSS:

.block { 
    position:relative; 
    width:190px; 
    height:190px; 
    background-color:FFF; 
    margin:10px; 
    float:left; 
    left:-10px; 
    text-align: center; 
    padding:10px; 
    border:solid 1px #CCC; 
    font-size:small; 
} 

.block p { 
    text-align: left; 
} 
+0

如果你想一切都爲中心,爲什麼你要將文本對齊到段落的左邊? –

+0

@Paulie_D - 問題說「垂直」 – Quentin

+1

垂直對齊在HTML中是一個真正的婊子。 –

回答

2

嗨,你可以使用這個兩個屬性:

.block { 
    display:table-cell; 
    vertical-align:middle; 
} 

並取出float:left。查看此演示http://jsfiddle.net/kGt54/17/並詢問任何問題。

編輯

如果你想保持你需要誰漂浮外部容器float:left,並具有裕度:

.blockC { 
    float:left; 
    margin:10px; 
} 

新的演示http://jsfiddle.net/kGt54/29/

+0

謝謝。順便說一下'blockC'中的「C」是什麼?我從來沒有見過這樣的事情。 –

+0

這只是爲了命名它:P像塊容器只是我的方式去做 – DaniP

+0

ohhh我現在看到,我沒有意識到你已經在HTML中創建了一個新的容器:) –

-1
.block { 
     position:relative; 
     background-color:FFF; 
     margin:10px; 
     float:left; 
     left:-10px; 
     text-align: center; 
     padding:10px; 
     border:solid 1px #CCC; 
     font-size:small; 
    } 

    .block p { 
     text-align: center; 
    } 

只是刪除在.block{}width:190px;height:190px;.blick p{}只是改變text-align : left;text-align : center;我希望多數民衆贊成你想達到..快樂編碼。

+0

它不是垂直 – DaniP

+0

我需要垂直對齊,而不是水平。 –

+0

你在吸菸? –