我有两个模块:
.master-header
和.header-nav
.header-nav
位于.master-header
内,是一个简单的导航:
<nav class="header-nav">
<ul>
<li class="active">
<a href="/home">Home</a>
</li>
<li class="">
<a href="/here">Item</a>
</li>
<li class="">
<a href="/photos">Photos</a>
</li>
<li class="">
<a href="/here">Item</a>
</li>
</ul>
</nav>
在我的.header-nav
模块中,我height
,a
和li
的{{1}}为100%,然后设置{{1}来自ul
的{{1}} height
的{{1}}的逻辑正确,以及其所属儿童的布局样式应该属于哪个。
现在,问题出现了,因为我希望将文本垂直居中于.header-nav
。线高是完美的,但100%不会工作,因为100%是字体的高度。 100px
是用来解决问题的最佳选择,但是将其放在.master-header
模块中似乎是错误的,因为它表明所有a
都应该像那。我更倾向于说50%这样的东西,但我根据项目的宽度不能line-height: 100px
。
有关该怎么做的任何想法?
尼尔
答案 0 :(得分:-1)
您可以使用display:table-cell来实现垂直对齐。
.header-nav {height: 100px}
.header-nav ul,
.header-nav li {height: 100%}
.header-nav ul {display: table;}
.header-nav li {display: table-cell; vertical-align: middle}