2011-04-11 91 views
0

里面,我有以下的html:居中标签+下拉一个div

一个div,其中包含一个标签和一个下拉列表(选择)该标签。在标签和下拉列表中放置一个垂直对齐:中心,结果是标签居中,但下拉不居中。我认为中心是“等于和低于下拉的间距”。 IE显然考虑的中心是将下拉列表的底部与标签的底部对齐,不幸的是,它看起来不太好。我怎样才能解决这个问题?

编辑:从位置来看并不紧急:相对;轻松解决问题,但使用位置:相对;惹恼我,不应该是必要的。

+1

发布您的实际代码。为什么位置:相对烦恼吗?这是一个完全有效和有用的CSS属性。 – easwee 2011-04-11 14:19:50

+0

@easwee我的实际代码与描述中所描述的完全相同,不同之处在于它的vertical-align:middle;不是中心(这是一个错字)。 – KyleM 2011-04-11 19:24:03

回答

2

你基本上错过了vertical-align属性。它只会在表格单元格中按照您的预期工作。不在div上。它也是垂直对齐:中间;不是中心。

垂直对齐:中间:对齐的元件的垂直中点与 父元素 的基线加上父的x高度的一半。

我觉得这文章解释清楚为什么:http://www.ibloomstudios.com/articles/vertical-align_misuse/

的关键是baseline这里,因为这是对其中的元素得到的一致点。

示例:http://jsfiddle.net/easwee/kabBF/7/

+0

实际上,这个“中间”链接的示例图像似乎完全符合我的意图。我不明白。谢谢你的例子 - 欣赏它。我将使用该技术。 – KyleM 2011-04-11 19:26:30

2

垂直居中是怎样的一个pain in the butt的...

在坚果壳,你需要给元素与top:50%的绝对位置。由于top是由包含元素的高度的测量的。这将把元素半成品的顶部放在容器中。然后你给它一个半个元素的中心高度的负顶边距。