CSS中心垂直放置在2个浮动的div中

时间:2010-10-09 22:54:12

标签: css html css-float vertical-alignment

我有一个带有2个浮动div的div 在左侧3个按钮和右侧链接的段落中,单行 当右边的链接变长(或者我决定更多的底部)时,段落会多行,我希望我的按钮垂直居中。

在我的例子中,粗体名称“Joe Smith”工作正常,但如果成为“Joe Smith Brown Jones”,我需要将按钮置于中心位置。 See an example here

CSS:

body { color: #CCCCCC; font-family: 'Lucida Grande', 'Trebuchet MS'; font-size: 100%; }
a, a:link, a:visited, a:focus { color:#4188FB; }
a:active, a:hover { color:#FFCC00; }
.clearboth { clear:both; }

/* header */
.admin-header {
    width: 700px;
    padding: 15px 10px;
    background: #505050;
}
.admin-header-left {
    float: left;
}
.admin-header-right {
    margin-right: 0px;
}
.admin-header-right p {
    text-align: right;
    line-height: 150%;
}

/* buttons */
a.nav-btn, a.nav-btn:link, a.nav-btn:visited, a.nav-btn:focus { padding: 5px 15px; margin-right: 2px; text-decoration: none; color: white; background-color: #4188FB; }
a.nav-btn:active, a.nav-btn:hover { color: white; background-color: #FFCC00; }

.rounded-left { -moz-border-radius: 5px 0 0 5px; -webkit-border-radius: 5px 0 0 5px; -opera-border-radius: 5px 0 0 5px; -khtml-border-radius: 5px 0 0 5px; border-radius: 5px 0 0 5px; }
.rounded-right { -moz-border-radius: 0 5px 5px 0; -webkit-border-radius: 0 5px 5px 0; -opera-border-radius: 0 5px 5px 0; -khtml-border-radius: 0 5px 5px 0; border-radius: 0 5px 5px 0; }

HTML:

<div class="admin-header">
    <div class="admin-header-left">
        <a class="nav-btn rounded-left" href="#">New Order</a><a class="nav-btn" href="#">Invoices</a><a class="nav-btn rounded-right" href="#">Portfolio</a>
    </div>
    <div class="admin-header-right">
        <p>Hello <b>Joe Smith Brown Jones</b> | <a href='#'>account</a> | <a href='#'>settings</a> | <a href='#'>help</a> | <a href='#'>exit</a></p>
    </div>
    <div class='clearboth'></div>
</div>

2 个答案:

答案 0 :(得分:1)

您可以尝试:

display:table,table-row,table-cell

在这种情况下,您将能够使用vertical-align属性:

您可以在此处查看更新的示例:http://jsfiddle.net/HPKTa/1/

不幸的是,这在IE6中不起作用。对于IE6,您可以使用javascript定位按钮。

答案 1 :(得分:0)

您必须使用此CSS属性

display:table-cell; vertical-align:middle;