【问题标题】:Vertically center text in ul a li在 ul li 中垂直居中文本
【发布时间】:2014-11-15 22:10:37
【问题描述】:

所以,显然我似乎无法弄清楚为什么 li 内的文本一直粘在它的顶部......我尝试过使用高度、行高、垂直对齐、显示(表格、 table-cell, inline-block, inline ...) 和所有这些东西,但是我不知道为什么,我看不出它有什么问题...

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;
}

提前谢谢你。

【问题讨论】:

  • 您将a 标签放在li 周围是否有特殊原因?这不是严格有效的 HTML。你能把a标签放在li标签里吗?
  • 我这样做的唯一原因是整个li 是一个可点击的链接,而不仅仅是单词本身@MarcAudet

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


【解决方案1】:

这是使用嵌入li 标签的a 标签的一种方法:

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>

【讨论】:

  • 谢谢!这有点愚蠢,但我没想过增加a 的尺寸,因为我非常“专注”于将其保持在那个地方,以使其按我想要的方式工作......无论如何,工作得很好。谢谢。
  • 这个看起来很简单的布局比看起来要难实现,我试了几次才搞定。顺便说一句,这个问题与构建 3 列页面布局密切相关,其中三列占据最高列的高度。万事如意!
猜你喜欢
  • 2018-05-17
  • 2018-07-07
  • 2012-12-07
  • 1970-01-01
  • 2012-08-15
  • 2013-04-11
  • 2014-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多