HTML5和CSS 3 - Div文本垂直对齐中间

时间:2012-04-10 11:58:44

标签: html5 css3

请帮忙,

我想将标题菜单/导航链接对齐以垂直对齐。参见:

http://hyindia.com/demo/myoffshore/index.html

请参阅此处的CODE:

nav ul { list-style-type:none; padding:0px; margin:0px; float:left; width:100%;}
nav ul li { float:left; width:119px; height:66px;}
nav ul li a { 
 float:left;
 width:119px;
 height:66px;
 font:bold 15px 'Myriad Pro';
 color:#fff;
 text-shadow:1px 1px #1f1f1f;
 text-align:center;
}

<nav>
<ul>
    <li><a href="#" class="nav1">HOME</a></li>
    <li><a href="#" class="nav2">HEALTH INSURANCE</a></li>
    <li><a href="#" class="nav3">LIFE INSURANCE</a></li>
    <li><a href="#" class="nav4">OVERSEAS MORTGAGES</a></li>
    <li><a href="#" class="nav5">ESTATE PLANNING</a></li>
    <li><a href="#" class="nav6">BANKING</a></li>
    <li><a href="#" class="nav7">WEALTH MANAGEMENT</a></li>
    <li><a href="#" class="nav8">QROPS</a></li>
</ul>

2 个答案:

答案 0 :(得分:1)

由于您的某些导航项具有跨越多行的文本,因此您将无法使用经典的line-height-trick(这将设置行高等于高度)。

相反,我建议将菜单样式更改为使用display: table/table-row/table-cell,因为表格非常适合在中间垂直对齐。

您需要做的是将整个nav样式更改为:

nav {
    display: table;
    width: 100%;
}

    nav ul {
        display: table-row;
        list-style: none;
        padding: 0;
        margin: 0;
    }

        nav ul li {
            display: table-cell;
            vertical-align: middle;
        }

            nav ul li a {
                display: block;
                padding: 5px 10px;
            }

删除所有浮动和宽度+高度(使用a上的填充)等(我上面提到的就是你应该拥有的所有内容)。

您还需要将实际背景样式从a移动到li s,因为a s的高度不再相等(但是li s))。

答案 1 :(得分:-1)

以下是五种非常好解释的方法:http://blog.themeforest.net/tutorials/vertical-centering-with-css/