Css div元素不在另一个div元素的中间对齐
这是我的相关页面标记:Css div元素不在另一个div元素的中间对齐,css,html,block,vertical-alignment,Css,Html,Block,Vertical Alignment,这是我的相关页面标记: <div id="header"> <div id="logo"> <a href="/">Home</a> </div> <div id="user_box"> test </div> </div> 现在,我想将user\u框div放置在标题div的垂直中间。经过大量的谷歌搜索和实验,我发现这并不容易。显然,我
<div id="header">
<div id="logo">
<a href="/">Home</a>
</div>
<div id="user_box">
test
</div>
</div>
现在,我想将user\u框
div放置在标题
div的垂直中间。经过大量的谷歌搜索和实验,我发现这并不容易。显然,我不能垂直对齐块元素,比如div。所以我正在寻找一种不同的方法来实现这一点
我看到了hacky显示:table方法并尝试使用它,但它没有改变任何事情。还尝试将元素更改为内联元素,如span
,但也没有成功。我甚至尝试使用边距:auto 0出于某种可怕的原因,这也根本不起作用
所以我请求帮助。如何在标题div内垂直对齐此div
谢谢 将用户框的行高设置为等于标题的高度
工作演示:垂直对齐不适用于用于对齐表中元素的div。在你的情况下,你可以用这个
#user_box { margin-top:25px; } /*110-60 = 50/2 = 25*/
所以我稍微修改了一下你的代码,我得到的是:
如您所见,我使用一个表作为标题,并对每个元素应用相同的id,但两个内部div已更改为td。我添加了一个内部td来补偿两个div之间的空间,因为它们最初设置为float:left/right
(当然,边框只是为了显示实际情况。)您可能希望使用display:table cell改为code>,以便可以将垂直对齐:中间
css属性,但这种显示类型会弄乱很多东西。这只会将#user_box
中的文本居中,而不是实际的div。请参阅:这就是#user_box
中的所有内容居中:)
#user_box { margin-top:25px; } /*110-60 = 50/2 = 25*/