html - 为什么 inline-block 在这种情况下不能垂直居中?

标签 html css

我试图通过 display: inline-blockvertical-align: center 使 Logo 居中,但这不起作用。你知道为什么以及如何解决这个问题吗? 非常感谢

http://jsfiddle.net/eLSbq/

<div class="header">
<div class="logo">Logo</div>                            
<ul class="drop_menu">
<li><a href='#'>Link 1</a>
    <ul>
    <li><a href='#'>Sub Link 1</a></li>
    <li><a href='#'>Sub Link 2</a></li>
    </ul>
</li>
<li><a href='#'>Link 2</a>
    <ul>
    <li><a href='#'>Sub Link 1</a></li>
    <li><a href='#'>Sub Link 2</a></li>
    <li><a href='#'>Sub Link 3</a></li>
    <li><a href='#'>Sub Link 4</a></li>
    </ul>
</li>
<li><a href='#'>Link 3</a>
    <ul>
    <li><a href='#'>Sub Link 1</a></li>
    <li><a href='#'>Sub Link 2</a></li>
    <li><a href='#'>Sub Link 3</a></li>
    <li><a href='#'>Sub Link 4</a></li>
    </ul>
</li>
</ul>
        </div>


.header {
    width: 100%;
    background: #fff;
    color: #124191;
    font-weight: 300;
    font-size: 28px;
    height: 120px;
    display: table;
     position: fixed;
        z-index: 999999;
        opacity: 0.7;
    background: aqua;
}

.logo {
display: inline-block;
vertical-align: middle;
left:0;
color: #333;
font-size: 30px;
font-weight: 800;
letter-spacing: -1px;
margin-left: 60px;
background: red;
}

 .drop_menu {
    padding:0;
    margin:0;
    list-style-type:none;

    right: 0;
    display: table;
    z-index: 3000;
       display: table-cell;
    vertical-align: middle;
    right: 0;

}


.drop_menu li { display: table-cell;
    vertical-align: middle; float: right;}

.drop_menu li a {
    padding:9px 20px;
    display:block;
    color:#666;
    text-decoration:none;
    font-size: 15px;
    font-weight: 400;
    text-transform: uppercase;



}

/* Submenu */
.drop_menu ul {
    position:absolute;
    left:-9999px;
    top:-9999px;
    list-style-type:none;
}
.drop_menu li:hover { position:relative; background:#5FD367; }
.drop_menu li:hover ul {
    left:0px;
    top:30px;
    background:#5FD367;
    padding:0px;
}

.drop_menu li:hover ul li a {
    padding:5px;
    display:block;
    width:168px;
    text-indent:15px;
    background-color:#5FD367;
}
.drop_menu li:hover ul li a:hover { background:#005555; }

最佳答案

现场演示 HERE

它现在工作。看看我的现场演示

问题是您在同一个 display:table 和同一个类 display:table-cell 中使用。 这是不正确的。

display:inline-block 可以满足您的需要,但我建议您使用 float:left 代替,因为 IE 7 等浏览器的兼容性, 8 等.. 较旧的浏览器不理解 display:inline-block 的含义并且不应用 css 属性。

我已经更改了您的 css 代码,也添加了一些 position:relativetop 值..

关于html - 为什么 inline-block 在这种情况下不能垂直居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20920216/

相关文章:

javascript - 如何在客户端 onchange 事件中获取下拉选择的值?

javascript - Bootstrap 轮播模板不起作用

html - 水平菜单下的间隙

html - 在 GWT 中将小部件(按钮)添加到 HTML5 Canvas

jquery - 如何将鼠标悬停在 div 框上并使其第一个子项出现?

javascript - 从方坐标到 CSS matrix3d()

html - 如何将向上滑动和向下滑动动画添加到可变高度 div?

javascript - 如何在 Bootstrap Datepicker 中检查日期是否被禁用?

IE 中的 CSS 下拉菜单

css - HTML bootstrap div 按钮对齐