2012-07-17 78 views
0

小提琴:http://jsfiddle.net/pMZ5T/爲什麼這個標籤不是垂直居中?

HTML:

<div id="arrowcont"> 
    <img width="30px" height="30px" src="check.jpg" style="float:left;" /> 
    <div id="verticalcenter">Full Guide</div> 
</div> 
<br> 
<br> 

CSS:

#arrowcont { 
    height: 40px; 
    width: 275px; 
    border: 1px solid black; 
    vertical - align: middle; 
    background - position: 0 50 % ; 
} 

#verticalcenter { 
    vertical - align: middle; 
    background - position: 0 50 % ; 
}​ 

我要垂直居中這兩個這樣看起來更好,當他們是彼此相鄰。圖像實際上是旁邊的複選標記。

我知道這個問題已經被問了很多,我居然連問它的過去,但我在其他問題我不得不使用的方法,但我仍然不能垂直居中這一點。有沒有人看到我錯了哪裏?我正在嘗試背景位置標記和垂直中間標記,但都沒有工作?

回答

2

這工作:http://jsfiddle.net/GyVSt/

我做了什麼:

  1. 改變#arrowcontdisplay: table-cell(將允許vertical-align
  2. 刪除float: leftimg
  3. 新增display: inline-blockimg#verticalcenter(會放img#verticalcenterñ分機對方)
+0

謝謝你! :) :) :) – king 2012-07-17 21:50:04

+1

你是天才賀聯 – king 2012-07-17 21:53:51

1

vertical-align: middle只能應用於表格單元格,您可以使用display: table-cell但在此可能會破壞您的佈局。

+0

什麼是安全的方式來做到這一點呢? – king 2012-07-17 21:44:50

+0

它也是安全的,如果你使用正確的CSS樣式,通過「打破你的佈局」我的意思是它可以打破目前的佈局,這是假設'div'元素具有'顯示:塊' – haynar 2012-07-17 21:46:31

+0

,但如果你不想要要使用表格單元格樣式,您可以使用javascript根據元素的高度手動計算和設置位置,但這不是一個好的解決方案IMO – haynar 2012-07-17 21:47:49