如何垂直对齐两个浮动的div?

时间:2012-05-12 04:50:01

标签: html css

我在容器div中有两个div。需要向右浮动另一个浮子。它们也需要在父母的内部垂直居中。我怎样才能做到这一点?

<div id='parent'>
    <div id='left-box' class='child'>Some text</div>
    <div id='right-box' class='child'>Details</div>    
</div>

如果没有浮动应用于它们,则使用此css

垂直对齐中间
.child{ display:inline-block; vertical-align:middle; }

但是,添加#right-box{ float: right; }会导致孩子失去垂直对齐方式。我做错了什么?

谢谢你们

2 个答案:

答案 0 :(得分:10)

here 是您需要的解决方案的在线演示

enter image description here

它是用这个html制作的:

<div id='parent'>
    <div id='left-box' class='child'>Some text</div>
    <div id='right-box' class='child'>Details</div>    
</div>

和这个css:

#parent {
    position: relative;

    /* decoration */
    width: 500px;
    height: 200px;
    background-color: #ddd;
}

.child {
    position: absolute;
    top: 50%;
    height: 70px;
    /* if text is one-line, line-height equal to height set text to the middle */
    line-height: 70px;
    /* margin-top is negative 1/2 of height */
    margin-top: -35px;

    /* decoration */
    width: 200px;
    text-align: center;
    background-color: #dfd;
}​

#left-box { left: 0; }
#right-box { right: 0; }

答案 1 :(得分:2)

您可以尝试display:table和display:table-cell styles。
请访问此网站了解详情http://www.quirksmode.org/css/display.html


注意:如果您希望父div高度为百分比(如100%),则它将相对于其容器的高度。如果容器是主体,那么你必须设置主体和html的高度,比如100%。

以下是代码的示例:

<div id='parent'>
    <div id='left-box'>Some text</div>
    <div id='right-box'>Details</div>    
</div>​

<style>
body,html{
    height:100%;   
}
#parent{
    border:1px solid red;
    display:table;
    height:100%; 
    width:100%;        
}
#left-box{ 
    background-color:#eee;
    display: table-cell;
    vertical-align:middle;
    padding:3px;
    width:50%;
}
#right-box{ 
    background-color:#dddddd;
    display: table-cell;
    vertical-align:middle;
    padding:3px;
    width:50%;
}
​</style>