html - CSS垂直定位,未知高度

标签 html css vertical-alignment

我有以下菜单结构:

<div class="header" style="height: 150px;">
    <nav id="main-nav">
        <div class="menu-main-menu-container">
            <ul id="menu">
                <li>menu item 1</li>
                <li>menu item 2</li>
            </ul>
        </div>
        <div class="clear"></div>
    </nav>
</div>
在这种情况下,

容器#main-nav具有真实的高度:20px;(因此.menu-main-menu-container具有它, 也)。但是当我尝试使用以下方法在 .header 中垂直定位整个菜单时:

#main-nav {
    bottom: 0;
    margin: auto;
    position: absolute;
    right: 0;
    top: 0;
}

#main-nav 立即获取 .header 的高度!所以,它是 height: 150px; (根据 Firebug),我无法垂直定位它。

如何垂直放置它?这是我经常遇到的错误。当我添加 top: 0; 时底部:0;它获取父容器的高度。我不知道该菜单的高度。

最佳答案

parent 高度未知而 child 高度已知的情况: 设置 top: 50%margin-top: -10px (10px = 导航高度的一半)。 演示 http://dabblet.com/gist/2819055

父子高度都未知的情况: 使用height: 100%的伪元素;伪元素和子元素(本例中为导航)上的 display: inlinevertical-align: middle - 演示 http://dabblet.com/gist/2819071

关于html - CSS垂直定位,未知高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10784770/

相关文章:

javascript - 如何使用 .InnerHTML 方法放置特定的数组项

javascript - 尝试使用 javascript 连接 Access 数据库

javascript - 计算元素在一个屏幕上的宽度和高度,元素数量未知

html - 无法在 CSS 中将图像居中

html - Flex 元素不需要是 Flex 容器内的显式元素吗?

css - 以外部 div 高度的百分比垂直对齐内部 div

php - 使用 PHP exec() 运行 Python 脚本

html - CSS - 在 div 之外相对于另一个的绝对位置

html - Mozilla Firefox 没有正确显示 css,尽管添加了 -moz-

css - Bootstrap 中的列