2012-07-17 53 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