我在容器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; }
会导致孩子失去垂直对齐方式。我做错了什么?
谢谢你们
答案 0 :(得分:10)
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>