在ul a li中垂直居中文本

时间:2014-09-22 01:46:52

标签: html css html-lists center vertical-alignment

所以,显然我似乎无法弄清楚为什么里面的文字一直坚持它的顶部...我试过玩高度,线高,垂直对齐,显示(表, table-cell,inline-block,inline ...)以及所有那些东西,但是idk为什么,我看不出它有什么问题......

jsFiddle - http://jsfiddle.net/qdq1jg4g/2/

HTML

<header>
    <span id="headerTitle">Title</span>

    <ul id="headerMenu">
        <a href=""><li> Plugin </li></a>
        <a href=""><li> how-to </li></a>
        <a href=""><li> Docs   </li></a>
    </ul>
</header>

CSS

#headerMenu{
    position: absolute;
    border: 1px dashed blue;
    font-size: 16pt;
    right: 15%;
    height: 100%;
    line-height: 100%;
    bottom: 0px;
    margin: 0px;
    padding: 0px;
}

#headerMenu a{
    height: 100%;
    line-height: 100%;
}

#headerMenu a li{
    border: 1px solid red;
    float: left;
    list-style: none;
    height: 100%;
    line-height: 100%;
    padding: 0px 20px;
}

提前谢谢。

1 个答案:

答案 0 :(得分:4)

以下是使用嵌入a标记的li代码执行此操作的一种方法:

header{
    background: #eee;
    color: #333;
    height: 100px;
    width: 100%;
    top: 0px;
    margin: 0px 0px 10px 0px;
    font-size: 26pt;
    position: relative;
    z-index: 100;
    transition: all 0.1s;
}

#headerTitle{
    position: absolute;
    bottom: 15px;
    left: 10px;
}		


#headerMenu{
    position: absolute;
    border: 1px dashed blue;
    font-size: 16pt;
    right: 15%;
    height: 100%;
    line-height: 1;
    bottom: 0px;
    margin: 0px;
    padding: 0px;
}
#headerMenu li {
    float: left;
    display: table;
    border: 1px solid red;
    height: 100%;
    margin: 0 20px; /* optional, depends on your layour */
}
#headerMenu a {
    display: table-cell;
    vertical-align: middle;
    border: 1px dashed red;
    height: 100%;
    padding: 0 20px;
}
<header>
    <span id="headerTitle">Title</span>
    
    <ul id="headerMenu">
        <li><a href="plug-in-link">Plugin</a></li>
        <li><a href="how-to-link">how-to</a></li>
        <li><a href="docs-link">Docs</a></li>
    </ul>
</header>